Skip to content

Commit 228e82e

Browse files
committed
BridJ: added main method to Demangler to better debug demangling
1 parent 41db5de commit 228e82e

1 file changed

Lines changed: 22 additions & 0 deletions

File tree

libraries/Runtime/BridJ/src/main/java/org/bridj/Demangler.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,30 @@
1010
import org.bridj.ann.Constructor;
1111
import org.bridj.ann.Ptr;
1212
import org.bridj.util.DefaultParameterizedType;
13+
import org.bridj.cpp.GCC4Demangler;
14+
import org.bridj.cpp.VC9Demangler;
1315

16+
/*
17+
mvn exec:java -Dexec.mainClass=org.bridj.Demangler "-Dexec.args=?method_name@class_name@@QAEPAPADPAD0@Z"
18+
19+
*/
1420
public abstract class Demangler {
21+
22+
public static void main(String[] args) {
23+
for (String arg : args) {
24+
try {
25+
System.out.println("VC9: " + new VC9Demangler(null, arg).parseSymbol());
26+
} catch (Exception ex) {
27+
ex.printStackTrace();
28+
}
29+
try {
30+
System.out.println("GCC4: " + new GCC4Demangler(null, arg).parseSymbol());
31+
} catch (Exception ex) {
32+
ex.printStackTrace();
33+
}
34+
}
35+
}
36+
1537
interface Annotations {
1638
<A extends Annotation> A getAnnotation(Class<A> c);
1739
}

0 commit comments

Comments
 (0)