Closed GoogleCodeExporter closed 9 years ago
Almost the same problem for me.
Exception in thread "main" java.lang.StackOverflowError
at java.util.Arrays.copyOf(Arrays.java:2760)
at java.util.Arrays.copyOf(Arrays.java:2734)
at java.util.ArrayList.toArray(ArrayList.java:275)
at java.util.ArrayList.<init>(ArrayList.java:131)
at com.googlecode.dex2jar.ir.ts.TopologicalSort.dfsRemove(TopologicalSort.java:129)
at com.googlecode.dex2jar.ir.ts.TopologicalSort.dfsRemove(TopologicalSort.java:135)
at com.googlecode.dex2jar.ir.ts.TopologicalSort.dfsRemove(TopologicalSort.java:135)
at com.googlecode.dex2jar.ir.ts.TopologicalSort.dfsRemove(TopologicalSort.java:135)
at com.googlecode.dex2jar.ir.ts.TopologicalSort.dfsRemove(TopologicalSort.java:135)
at com.googlecode.dex2jar.ir.ts.TopologicalSort.dfsRemove(TopologicalSort.java:135)
Original comment by bengt.go...@gmail.com
on 18 Jan 2012 at 1:38
For what I can see it's the recursive function dfsRemove in
TopologicalSort.java that goes haywire. I'm not the man (lack of java skills)
to actually fix this but I think the problem lies in the "else if" statement on
row 134. Either the to._cfg_visited never turns "true" or the depth of the
recursive function can't be handled by a normal computers stack. I tested with
2GB stack and it didn't work out.
127 private void dfsRemove(Stmt stmt, Set<Stmt> visited) {
128 visited.add(stmt);
129 for (Stmt to : new ArrayList<Stmt>(stmt._ts_tos)) {
130 if (visited.contains(to)) {// a loop
131 to._cfg_froms.remove(stmt);
132 while (stmt._ts_tos.remove(to)) {
133 }
134 } else if (!to._cfg_visited) {
135 dfsRemove(to, visited);
136 }
137 }
138 visited.remove(stmt);
139 stmt._cfg_visited = true;
140 }
Original comment by bengt.go...@gmail.com
on 20 Jan 2012 at 6:29
same problem while disassemble framework.dex, is that because it's too big?
(about 7.48M)
Original comment by zhangxd0...@gmail.com
on 3 Feb 2012 at 7:24
and I found that the old version like 0.0.7.9-SNAPSHOT, won't report such error
Original comment by zhangxd0...@gmail.com
on 3 Feb 2012 at 7:32
[deleted comment]
Done. I did send it to your pxb-address. Not sure whether it would clog down
this issue if I send it to your googlecode address so I sent it to the other
one.
Original comment by bengt.go...@gmail.com
on 3 Feb 2012 at 10:08
[deleted comment]
I use dex2jar-0.0.9.7 also have at
com.googlecode.dex2jar.ir.ts.TopologicalSort.dfsRemove(TopologicalSort.java:135)
exception!
The apk file 137544_f9bc28aa-bebe-4941-ac02-0e00dc787c06.apk
Original comment by zdz8...@gmail.com
on 9 Feb 2012 at 1:25
Attachments:
@zdz8 Funny. Out of curiosity I downloaded your apk-file and ran it through
dex2jar (Linux, Opensuse 11.4, dex2jar 0.0.9.7) and it went fine. One thing
though. I installed 4GB more RAM (8GB in total now) in my laptop last friday. I
tried one more time with my classes.dex and it did not work.
Original comment by bengt.go...@gmail.com
on 9 Feb 2012 at 1:46
Tried zdz8's file as well. Even tried extending my VM memory size by using the
following code:
set CLASSPATH=
FOR %%i IN ("%~dp0lib\*.jar") DO CALL "%~dp0setclasspath.bat" %%i
java -Xms1024m -Xmx1024m -cp "%CLASSPATH%" "com.googlecode.dex2jar.v3.Main" %*
This doesn't work either and still gives me the same error.
Original comment by membe...@gmail.com
on 9 Feb 2012 at 2:06
[deleted comment]
I think you've sorted out the issue of StackOverflowError in dex2jar-0.0.9.8.
At least for what I can see. Thanks.
Original comment by bengt.go...@gmail.com
on 4 Jun 2012 at 10:50
Original issue reported on code.google.com by
wylsx...@gmail.com
on 17 Jan 2012 at 12:24