NAME=rz-diff empty first file FILE== CMDS=!rz-diff -C -t bytes "" bins/other/rz-diff/rz-diff_c_2 EXPECT_ERR=< "0x00401b10" [color="#13a10e"]; "0x00401ae0" -> "0x00401b01" [color="#c50f1f"]; "0x00401b10" -> "0x00401b78" [color="#13a10e"]; "0x00401b10" -> "0x00401b20" [color="#c50f1f"]; "0x00401b78" -> "0x00401b60" [color="#13a10e"]; "0x00401b78" -> "0x00401b7d" [color="#c50f1f"]; "0x00401b60" -> "0x00401b01" [color="#0037da"]; "0x00401b7d" -> "0x00401b60" [color="#13a10e"]; "0x00401b7d" -> "0x00401b89" [color="#c50f1f"]; "0x00401b89" -> "0x00401b60" [color="#13a10e"]; "0x00401b89" -> "0x00401b8f" [color="#c50f1f"]; "0x00401b8f" -> "0x00401b60" [color="#13a10e"]; "0x00401b8f" -> "0x00401b95" [color="#c50f1f"]; "0x00401b95" -> "0x00401b60" [color="#13a10e"]; "0x00401b95" -> "0x00401b9b" [color="#c50f1f"]; "0x00401b9b" -> "0x00401b60" [color="#13a10e"]; "0x00401b9b" -> "0x00401ba1" [color="#c50f1f"]; "0x00401ba1" -> "0x00401b60" [color="#13a10e"]; "0x00401ba1" -> "0x00401bbc" [color="#c50f1f"]; "0x00401bbc" -> "0x00401b01" [color="#0037da"]; "0x00401b20" -> "0x00401b60" [color="#13a10e"]; "0x00401b20" -> "0x00401b2c" [color="#c50f1f"]; "0x00401b2c" -> "0x00401b60" [color="#13a10e"]; "0x00401b2c" -> "0x00401b38" [color="#c50f1f"]; "0x00401b38" -> "0x00401b60" [color="#13a10e"]; "0x00401b38" -> "0x00401b3e" [color="#c50f1f"]; "0x00401b3e" -> "0x00401b60" [color="#13a10e"]; "0x00401b3e" -> "0x00401b44" [color="#c50f1f"]; "0x00401b44" -> "0x00401b60" [color="#13a10e"]; "0x00401b44" -> "0x00401b4a" [color="#c50f1f"]; "0x00401b4a" -> "0x00401b01" [color="#0037da"]; } EOF RUN NAME=rz-diff graphs comparison with addresses JSON FILE== CMDS=!rz-diff -e analysis.jmp.cref=true -C -j -t graphs -0 0x401ae0 -1 0x401af0 bins/other/rz-diff/true bins/other/rz-diff/false EXPECT=<.attr align: 0x00000000 -r-x class.methods..attr.0.code align: 0x00000000 -r-- class.methods.main.attr align: 0x00000000 -r-x class.methods.main.attr.0.code +align: 0x00000000 -r-- class.methods.say.attr +align: 0x00000000 -r-x class.methods.say.attr.0.code EOF RUN NAME=rz-diff sections comparison JSON FILE== CMDS=!rz-diff -C -jt sections bins/java/Main.java.11.class bins/java/Hello.class EXPECT=<.attr\n"},{"op":"equal","value":"align: 0x00000000 -r-x class.methods..attr.0.code\n"},{"op":"equal","value":"align: 0x00000000 -r-- class.methods.main.attr\n"},{"op":"equal","value":"align: 0x00000000 -r-x class.methods.main.attr.0.code\n"},{"op":"insert","value":"align: 0x00000000 -r-- class.methods.say.attr\n"},{"op":"insert","value":"align: 0x00000000 -r-x class.methods.say.attr.0.code\n"}]}]} EOF RUN NAME=rz-diff sections comparison with addresses FILE== CMDS=!rz-diff -C -At sections bins/java/Main.java.11.class bins/java/Hello.class EXPECT=<.attr -virt: 0x00000000000004a4:0x001d phys: 0x00000000000004a4:0x001d align: 0x00000000 -r-x class.methods..attr.0.code -virt: 0x00000000000004b9:0x00d1 phys: 0x00000000000004b9:0x00d1 align: 0x00000000 -r-- class.methods.main.attr -virt: 0x00000000000004cf:0x00c1 phys: 0x00000000000004cf:0x00c1 align: 0x00000000 -r-x class.methods.main.attr.0.code +virt: 0x00000000000002cd:0x0008 phys: 0x00000000000002cd:0x0008 align: 0x00000000 -r-- class.attr +virt: 0x000000000000000a:0x01ff phys: 0x000000000000000a:0x01ff align: 0x00000000 -r-- class.constant_pool +virt: 0x000000000000020b:0x000a phys: 0x000000000000020b:0x000a align: 0x00000000 -r-- class.fields +virt: 0x000000000000020b:0x000a phys: 0x000000000000020b:0x000a align: 0x00000000 -r-- class.fields.who.attr +virt: 0x0000000000000215:0x00b8 phys: 0x0000000000000215:0x00b8 align: 0x00000000 -r-- class.methods +virt: 0x0000000000000215:0x0038 phys: 0x0000000000000215:0x0038 align: 0x00000000 -r-- class.methods..attr +virt: 0x000000000000022b:0x002a phys: 0x000000000000022b:0x002a align: 0x00000000 -r-x class.methods..attr.0.code +virt: 0x0000000000000294:0x0039 phys: 0x0000000000000294:0x0039 align: 0x00000000 -r-- class.methods.main.attr +virt: 0x00000000000002aa:0x0029 phys: 0x00000000000002aa:0x0029 align: 0x00000000 -r-x class.methods.main.attr.0.code +virt: 0x000000000000024d:0x0047 phys: 0x000000000000024d:0x0047 align: 0x00000000 -r-- class.methods.say.attr +virt: 0x0000000000000263:0x0039 phys: 0x0000000000000263:0x0039 align: 0x00000000 -r-x class.methods.say.attr.0.code EOF RUN NAME=rz-diff sections comparison with addresses JSON FILE== CMDS=!rz-diff -C -Ajt sections bins/java/Main.java.11.class bins/java/Hello.class EXPECT=<.attr\n"},{"op":"delete","value":"virt: 0x00000000000004a4:0x001d phys: 0x00000000000004a4:0x001d align: 0x00000000 -r-x class.methods..attr.0.code\n"},{"op":"delete","value":"virt: 0x00000000000004b9:0x00d1 phys: 0x00000000000004b9:0x00d1 align: 0x00000000 -r-- class.methods.main.attr\n"},{"op":"delete","value":"virt: 0x00000000000004cf:0x00c1 phys: 0x00000000000004cf:0x00c1 align: 0x00000000 -r-x class.methods.main.attr.0.code\n"},{"op":"insert","value":"virt: 0x00000000000002cd:0x0008 phys: 0x00000000000002cd:0x0008 align: 0x00000000 -r-- class.attr\n"},{"op":"insert","value":"virt: 0x000000000000000a:0x01ff phys: 0x000000000000000a:0x01ff align: 0x00000000 -r-- class.constant_pool\n"},{"op":"insert","value":"virt: 0x000000000000020b:0x000a phys: 0x000000000000020b:0x000a align: 0x00000000 -r-- class.fields\n"},{"op":"insert","value":"virt: 0x000000000000020b:0x000a phys: 0x000000000000020b:0x000a align: 0x00000000 -r-- class.fields.who.attr\n"},{"op":"insert","value":"virt: 0x0000000000000215:0x00b8 phys: 0x0000000000000215:0x00b8 align: 0x00000000 -r-- class.methods\n"},{"op":"insert","value":"virt: 0x0000000000000215:0x0038 phys: 0x0000000000000215:0x0038 align: 0x00000000 -r-- class.methods..attr\n"},{"op":"insert","value":"virt: 0x000000000000022b:0x002a phys: 0x000000000000022b:0x002a align: 0x00000000 -r-x class.methods..attr.0.code\n"},{"op":"insert","value":"virt: 0x0000000000000294:0x0039 phys: 0x0000000000000294:0x0039 align: 0x00000000 -r-- class.methods.main.attr\n"},{"op":"insert","value":"virt: 0x00000000000002aa:0x0029 phys: 0x00000000000002aa:0x0029 align: 0x00000000 -r-x class.methods.main.attr.0.code\n"},{"op":"insert","value":"virt: 0x000000000000024d:0x0047 phys: 0x000000000000024d:0x0047 align: 0x00000000 -r-- class.methods.say.attr\n"},{"op":"insert","value":"virt: 0x0000000000000263:0x0039 phys: 0x0000000000000263:0x0039 align: 0x00000000 -r-x class.methods.say.attr.0.code\n"}]}]} EOF RUN NAME=rz-diff symbols comparison FILE== CMDS=!rz-diff -C -t symbols bins/java/Main.java.11.class bins/java/Main.java.1.7.class EXPECT=< java.lang.Object Ljava/lang/Object; java.io.FileReader Ljava/io/FileReader; java.io.BufferedReader Ljava/io/BufferedReader; Main LMain; LMain;. Main LMain; LMain;.main +java.lang.StringBuilder Ljava/lang/StringBuilder; append java.io.BufferedReader Ljava/io/BufferedReader; close java.lang.System Ljava/lang/System; err java.io.PrintStream Ljava/io/PrintStream; format -java.lang.invoke.StringConcatFactory Ljava/lang/invoke/StringConcatFactory; makeConcatWithConstants java.lang.System Ljava/lang/System; out java.lang.Exception Ljava/lang/Exception; printStackTrace java.io.PrintStream Ljava/io/PrintStream; println java.io.BufferedReader Ljava/io/BufferedReader; readLine +java.lang.StringBuilder Ljava/lang/StringBuilder; toString EOF RUN NAME=rz-diff symbols comparison JSON FILE== CMDS=!rz-diff -C -jt symbols bins/java/Main.java.11.class bins/java/Main.java.1.7.class EXPECT=<\n"},{"op":"equal","value":"java.lang.Object Ljava/lang/Object; \n"},{"op":"equal","value":"java.io.FileReader Ljava/io/FileReader; \n"},{"op":"equal","value":"java.io.BufferedReader Ljava/io/BufferedReader; \n"},{"op":"equal","value":"Main LMain; LMain;.\n"},{"op":"equal","value":"Main LMain; LMain;.main\n"},{"op":"insert","value":"java.lang.StringBuilder Ljava/lang/StringBuilder; append\n"},{"op":"equal","value":"java.io.BufferedReader Ljava/io/BufferedReader; close\n"},{"op":"equal","value":"java.lang.System Ljava/lang/System; err\n"},{"op":"equal","value":"java.io.PrintStream Ljava/io/PrintStream; format\n"},{"op":"delete","value":"java.lang.invoke.StringConcatFactory Ljava/lang/invoke/StringConcatFactory; makeConcatWithConstants\n"},{"op":"equal","value":"java.lang.System Ljava/lang/System; out\n"},{"op":"equal","value":"java.lang.Exception Ljava/lang/Exception; printStackTrace\n"},{"op":"equal","value":"java.io.PrintStream Ljava/io/PrintStream; println\n"},{"op":"equal","value":"java.io.BufferedReader Ljava/io/BufferedReader; readLine\n"},{"op":"insert","value":"java.lang.StringBuilder Ljava/lang/StringBuilder; toString\n"}]}]} EOF RUN NAME=rz-diff symbols comparison with addresses FILE== CMDS=!rz-diff -C -At symbols bins/java/Main.java.11.class bins/java/Main.java.1.7.class EXPECT=< virt: 0x0000000000000114 phys: 0x0000000000000114 java.io.FileReader Ljava/io/FileReader; virt: 0x000000000000011e phys: 0x000000000000011e java.io.BufferedReader Ljava/io/BufferedReader; -virt: 0x00000000000004a4 phys: 0x00000000000004a4 Main LMain; LMain;. -virt: 0x00000000000004cf phys: 0x00000000000004cf Main LMain; LMain;.main -virt: 0x00000000000001b7 phys: 0x00000000000001b7 java.io.BufferedReader Ljava/io/BufferedReader; close -virt: 0x00000000000001e2 phys: 0x00000000000001e2 java.lang.System Ljava/lang/System; err -virt: 0x000000000000021f phys: 0x000000000000021f java.io.PrintStream Ljava/io/PrintStream; format -virt: 0x000000000000033f phys: 0x000000000000033f java.lang.invoke.StringConcatFactory Ljava/lang/invoke/StringConcatFactory; makeConcatWithConstants +virt: 0x0000000000000187 phys: 0x0000000000000187 java.lang.StringBuilder Ljava/lang/StringBuilder; +virt: 0x0000000000000383 phys: 0x0000000000000383 Main LMain; LMain;. +virt: 0x00000000000003ae phys: 0x00000000000003ae Main LMain; LMain;.main +virt: 0x0000000000000198 phys: 0x0000000000000198 java.lang.StringBuilder Ljava/lang/StringBuilder; append +virt: 0x00000000000001f0 phys: 0x00000000000001f0 java.io.BufferedReader Ljava/io/BufferedReader; close +virt: 0x000000000000021b phys: 0x000000000000021b java.lang.System Ljava/lang/System; err +virt: 0x0000000000000258 phys: 0x0000000000000258 java.io.PrintStream Ljava/io/PrintStream; format virt: 0x0000000000000039 phys: 0x0000000000000039 java.lang.System Ljava/lang/System; out -virt: 0x0000000000000271 phys: 0x0000000000000271 java.lang.Exception Ljava/lang/Exception; printStackTrace +virt: 0x00000000000002aa phys: 0x00000000000002aa java.lang.Exception Ljava/lang/Exception; printStackTrace virt: 0x0000000000000088 phys: 0x0000000000000088 java.io.PrintStream Ljava/io/PrintStream; println virt: 0x000000000000013e phys: 0x000000000000013e java.io.BufferedReader Ljava/io/BufferedReader; readLine +virt: 0x00000000000001db phys: 0x00000000000001db java.lang.StringBuilder Ljava/lang/StringBuilder; toString EOF RUN NAME=rz-diff symbols comparison with addresses JSON FILE== CMDS=!rz-diff -C -Ajt symbols bins/java/Main.java.11.class bins/java/Main.java.1.7.class EXPECT=<\n"},{"op":"equal","value":"virt: 0x0000000000000114 phys: 0x0000000000000114 java.io.FileReader Ljava/io/FileReader; \n"},{"op":"equal","value":"virt: 0x000000000000011e phys: 0x000000000000011e java.io.BufferedReader Ljava/io/BufferedReader; \n"},{"op":"delete","value":"virt: 0x00000000000004a4 phys: 0x00000000000004a4 Main LMain; LMain;.\n"},{"op":"delete","value":"virt: 0x00000000000004cf phys: 0x00000000000004cf Main LMain; LMain;.main\n"},{"op":"delete","value":"virt: 0x00000000000001b7 phys: 0x00000000000001b7 java.io.BufferedReader Ljava/io/BufferedReader; close\n"},{"op":"delete","value":"virt: 0x00000000000001e2 phys: 0x00000000000001e2 java.lang.System Ljava/lang/System; err\n"},{"op":"delete","value":"virt: 0x000000000000021f phys: 0x000000000000021f java.io.PrintStream Ljava/io/PrintStream; format\n"},{"op":"delete","value":"virt: 0x000000000000033f phys: 0x000000000000033f java.lang.invoke.StringConcatFactory Ljava/lang/invoke/StringConcatFactory; makeConcatWithConstants\n"},{"op":"insert","value":"virt: 0x0000000000000187 phys: 0x0000000000000187 java.lang.StringBuilder Ljava/lang/StringBuilder; \n"},{"op":"insert","value":"virt: 0x0000000000000383 phys: 0x0000000000000383 Main LMain; LMain;.\n"},{"op":"insert","value":"virt: 0x00000000000003ae phys: 0x00000000000003ae Main LMain; LMain;.main\n"},{"op":"insert","value":"virt: 0x0000000000000198 phys: 0x0000000000000198 java.lang.StringBuilder Ljava/lang/StringBuilder; append\n"},{"op":"insert","value":"virt: 0x00000000000001f0 phys: 0x00000000000001f0 java.io.BufferedReader Ljava/io/BufferedReader; close\n"},{"op":"insert","value":"virt: 0x000000000000021b phys: 0x000000000000021b java.lang.System Ljava/lang/System; err\n"},{"op":"insert","value":"virt: 0x0000000000000258 phys: 0x0000000000000258 java.io.PrintStream Ljava/io/PrintStream; format\n"},{"op":"equal","value":"virt: 0x0000000000000039 phys: 0x0000000000000039 java.lang.System Ljava/lang/System; out\n"},{"op":"delete","value":"virt: 0x0000000000000271 phys: 0x0000000000000271 java.lang.Exception Ljava/lang/Exception; printStackTrace\n"},{"op":"insert","value":"virt: 0x00000000000002aa phys: 0x00000000000002aa java.lang.Exception Ljava/lang/Exception; printStackTrace\n"},{"op":"equal","value":"virt: 0x0000000000000088 phys: 0x0000000000000088 java.io.PrintStream Ljava/io/PrintStream; println\n"},{"op":"equal","value":"virt: 0x000000000000013e phys: 0x000000000000013e java.io.BufferedReader Ljava/io/BufferedReader; readLine\n"},{"op":"insert","value":"virt: 0x00000000000001db phys: 0x00000000000001db java.lang.StringBuilder Ljava/lang/StringBuilder; toString\n"}]}]} EOF RUN NAME=rz-diff command with zero argument FILE== CMDS=!rz-diff -C -t command bins/java/Main.java.11.class bins/java/Hello.class EXPECT_ERR=<. EOF RUN NAME=rz-diff command with one argument FILE== CMDS=!rz-diff -C -0 javac -t command bins/java/Main.java.11.class bins/java/Main.java.15.class EXPECT=<