NAME=Check if is Java lang
FILE=bins/java/Hello.class
CMDS=iI~lang
EXPECT=<<EOF
lang     java
EOF
RUN


NAME=Check if is Kotlin lang
FILE=bins/java/HiKt.class
CMDS=iI~lang
EXPECT=<<EOF
lang     kotlin
EOF
RUN


NAME=Check if is Groovy lang
FILE=bins/java/test.class
CMDS=iI~lang
EXPECT=<<EOF
lang     groovy
EOF
RUN


NAME=Check if has line number
FILE=bins/java/Main.class
CMDS=iI~linenum
EXPECT=<<EOF
linenum  true
EOF
RUN


NAME=Check that it does not have line number
FILE=bins/java/TryWithResources.class
CMDS=iI~linenum
EXPECT=<<EOF
linenum  false
EOF
RUN


NAME=Check that entry point points to main
FILE=bins/java/HiKt.class
CMDS=iS ; s
EXPECT=<<EOF
     paddr  size      vaddr vsize align perm name                           type flags 
---------------------------------------------------------------------------------------
0x0000000a 0x201 0x0000000a 0x201   0x0 -r-- class.constant_pool                 
0x0000020f  0x4e 0x0000020f  0x4e   0x0 -r-- class.methods                       
0x0000020f  0x4e 0x0000020f  0x4e   0x0 -r-- class.methods.main.attr             
0x00000225  0x31 0x00000225  0x31   0x0 -r-x class.methods.main.attr.0.code      
0x0000025d  0x54 0x0000025d  0x54   0x0 -r-- class.attr                          
0x225
EOF
RUN


NAME=Check that entry point points to <init>
FILE=bins/java/jdwpexeccmd.class
CMDS=iS ; s
EXPECT=<<EOF
     paddr  size      vaddr vsize align perm name                             type flags 
-----------------------------------------------------------------------------------------
0x0000000a 0x315 0x0000000a 0x315   0x0 -r-- class.constant_pool                   
0x00000323 0x124 0x00000323 0x124   0x0 -r-- class.methods                         
0x00000323  0x2b 0x00000323  0x2b   0x0 -r-- class.methods._init_.attr             
0x00000339  0x1d 0x00000339  0x1d   0x0 -r-x class.methods._init_.attr.0.code      
0x0000034e  0xf9 0x0000034e  0xf9   0x0 -r-- class.methods.run.attr                
0x00000364  0xe9 0x00000364  0xe9   0x0 -r-x class.methods.run.attr.0.code         
0x00000447   0x8 0x00000447   0x8   0x0 -r-- class.attr                            
0x339
EOF
RUN


NAME=Check that strings are provided by Java class
FILE=bins/java/HiKt.class
CMDS=iz
EXPECT=<<EOF
nth      paddr      vaddr len size section             type  string                                                                                                                                                                                                                                                                  
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  1 0x0000000a 0x0000000a   4    4 class.constant_pool mutf8 HiKt
  3 0x00000014 0x00000014  16   16 class.constant_pool mutf8 java/lang/Object
  5 0x0000002a 0x0000002a   4    4 class.constant_pool mutf8 main
  6 0x00000031 0x00000031  22   22 class.constant_pool mutf8 ([Ljava/lang/String;)V
  7 0x0000004a 0x0000004a  35   35 class.constant_pool mutf8 Lorg/jetbrains/annotations/NotNull;
  8 0x00000070 0x00000070   4    4 class.constant_pool mutf8 args
 10 0x0000007a 0x0000007a  30   30 class.constant_pool mutf8 kotlin/jvm/internal/Intrinsics
 12 0x0000009e 0x0000009e  23   23 class.constant_pool mutf8 checkParameterIsNotNull
 13 0x000000b8 0x000000b8  39   39 class.constant_pool mutf8 (Ljava/lang/Object;Ljava/lang/String;)V
 16 0x000000ec 0x000000ec  19   19 class.constant_pool mutf8 [Ljava/lang/String;
 17 0x00000102 0x00000102  17   17 class.constant_pool mutf8 Lkotlin/Metadata;
 18 0x00000116 0x00000116   2    2 class.constant_pool mutf8 mv
 21 0x00000125 0x00000125   2    2 class.constant_pool mutf8 bv
 23 0x0000012f 0x0000012f   1    1 class.constant_pool mutf8 k
 25 0x00000138 0x00000138   2    2 class.constant_pool mutf8 d1
 26 0x0000013d 0x0000013d  53   53 class.constant_pool mutf8 \u0000\u0012\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0010\u0011\n\u0002\u0010\u000e\n\u0000\u001a\u0019\u0010\u0000\u001a\u00020\u00012\f\u0010\u0002\u001a\b\u0012\u0004\u0012\u00020\u00040\u0003¢\u0006\u0002\u0010\u0005 blocks=Basic Latin,Latin-1 Supplement
 27 0x00000175 0x00000175   2    2 class.constant_pool mutf8 d2
 29 0x0000017d 0x0000017d   5    5 class.constant_pool mutf8 hi.kt
 30 0x00000185 0x00000185   4    4 class.constant_pool mutf8 Code
 31 0x0000018c 0x0000018c  18   18 class.constant_pool mutf8 LocalVariableTable
 32 0x000001a1 0x000001a1  15   15 class.constant_pool mutf8 LineNumberTable
 33 0x000001b3 0x000001b3  36   36 class.constant_pool mutf8 RuntimeInvisibleParameterAnnotations
 34 0x000001da 0x000001da  10   10 class.constant_pool mutf8 SourceFile
 35 0x000001e7 0x000001e7  25   25 class.constant_pool mutf8 RuntimeVisibleAnnotations
EOF
RUN


NAME=Java list symbols crash2.class
FILE=bins/java/crash2.class
CMDS=is
EXPECT=<<EOF
nth paddr vaddr bind type size lib name 
----------------------------------------
EOF
RUN


NAME=Java list symbols DemoTest.class
FILE=bins/java/DemoTest.class
CMDS=is
EXPECT=<<EOF
nth      paddr      vaddr bind   type  size lib                 name                     
-----------------------------------------------------------------------------------------
  0 0x00000190 0x00000190 LOCAL  FUNC    27 DemoTest            int fun()
  1 0x000001b9 0x000001b9 LOCAL  FUNC    33 DemoTest            void <init>()
  2 0x000001e8 0x000001e8 LOCAL  FUNC    27 DemoTest            String res()
  3 0x00000211 0x00000211 LOCAL  FUNC    37 DemoTest            void main(String[])
  1 0x0000000a 0x0000000a IMPORT METH     0 java.lang.Object    imp.void <init>()
  3 0x00000012 0x00000012 IMPORT FIELD    0 java.lang.System    imp.System.out
  5 0x0000001a 0x0000001a IMPORT METH     0 java.io.PrintStream imp.void println(String)
EOF
RUN


NAME=Java list symbols ExCaseTableSwitch.class
FILE=bins/java/ExCaseTableSwitch.class
CMDS=is
EXPECT=<<EOF
nth      paddr      vaddr bind   type  size lib                     name                            
----------------------------------------------------------------------------------------------------
  0 0x00000464 0x00000464 LOCAL  FUNC    47 CaseTableSwitch         void <init>()
  1 0x000004a1 0x000004a1 LOCAL  FUNC   304 CaseTableSwitch         String a(int)
  2 0x000005df 0x000005df LOCAL  FUNC    54 CaseTableSwitch         int a(String)
  3 0x00000623 0x00000623 LOCAL  FUNC    44 CaseTableSwitch         int a()
  4 0x0000065d 0x0000065d LOCAL  FUNC   427 CaseTableSwitch         void hopskip_line_switch()
  5 0x00000816 0x00000816 LOCAL  FUNC   454 CaseTableSwitch         void straight_line_switch()
  6 0x000009ea 0x000009ea LOCAL  FUNC   446 CaseTableSwitch         void straight_line_switch_()
  7 0x00000bb6 0x00000bb6 LOCAL  FUNC   446 CaseTableSwitch         void main(String[])
  8 0x0000004b 0x0000004b IMPORT METH     0 java.lang.Object        imp.void <init>()
 16 0x000000b3 0x000000b3 IMPORT FIELD    0 java.lang.System        imp.System.out
 26 0x0000011d 0x0000011d IMPORT METH     0 java.lang.StringBuilder imp.void <init>(String)
 29 0x0000013f 0x0000013f IMPORT METH     0 java.lang.StringBuilder imp.StringBuilder append(int)
 33 0x00000171 0x00000171 IMPORT METH     0 java.lang.StringBuilder imp.String toString()
 37 0x0000019d 0x0000019d IMPORT METH     0 java.io.PrintStream     imp.void println(String)
 46 0x000001fd 0x000001fd IMPORT METH     0 java.lang.String        imp.void <init>()
 55 0x00000267 0x00000267 IMPORT METH     0 java.lang.Integer       imp.Integer valueOf(int)
 61 0x000002ab 0x000002ab IMPORT METH     0 TestVariableSwitchUp    imp.void TestMultipleVariable()
EOF
RUN


NAME=Java list symbols fuckedup.class
FILE=bins/java/fuckedup.class
CMDS=is
EXPECT=<<EOF
nth paddr vaddr bind type size lib name 
----------------------------------------
EOF
RUN


NAME=Java list symbols Hello.class
FILE=bins/java/Hello.class
CMDS=is
EXPECT=<<EOF
nth      paddr      vaddr bind   type  size lib                     name                             
-----------------------------------------------------------------------------------------------------
  0 0x0000022b 0x0000022b LOCAL  FUNC    42 Hello                   void <init>(String)
  1 0x00000263 0x00000263 LOCAL  FUNC    57 Hello                   void say()
  2 0x000002aa 0x000002aa LOCAL  FUNC    41 Hello                   void main(String[])
  0 0x0000020b 0x0000020b LOCAL  OBJ      0 Hello                   Hello.who
  1 0x0000000a 0x0000000a IMPORT METH     0 java.lang.Object        imp.void <init>()
  2 0x0000000f 0x0000000f IMPORT FIELD    0 Hello                   imp.Hello.who
  3 0x00000014 0x00000014 IMPORT FIELD    0 java.lang.System        imp.System.out
  5 0x0000001c 0x0000001c IMPORT METH     0 java.lang.StringBuilder imp.void <init>()
  7 0x00000024 0x00000024 IMPORT METH     0 java.lang.StringBuilder imp.StringBuilder append(String)
  8 0x00000029 0x00000029 IMPORT METH     0 java.lang.StringBuilder imp.String toString()
  9 0x0000002e 0x0000002e IMPORT METH     0 java.io.PrintStream     imp.void println(String)
 12 0x00000039 0x00000039 IMPORT METH     0 Hello                   imp.void <init>(String)
 13 0x0000003e 0x0000003e IMPORT METH     0 Hello                   imp.void say()
EOF
RUN


NAME=Java list symbols HiKt.class
FILE=bins/java/HiKt.class
CMDS=is
EXPECT=<<EOF
nth      paddr      vaddr bind   type size lib                            name                                             
---------------------------------------------------------------------------------------------------------------------------
  0 0x00000225 0x00000225 GLOBAL FUNC   49 HiKt                           void main(String[])
 15 0x000000e7 0x000000e7 IMPORT METH    0 kotlin.jvm.internal.Intrinsics imp.void checkParameterIsNotNull(Object, String)
EOF
RUN


NAME=Java list symbols invisible.class
FILE=bins/java/invisible.class
CMDS=is
EXPECT=<<EOF
nth      paddr      vaddr bind   type  size lib                 name                     
-----------------------------------------------------------------------------------------
  0 0x00000120 0x00000120 LOCAL  FUNC    17 Test                void main(String[])
  7 0x0000003a 0x0000003a IMPORT FIELD    0 java.lang.System    imp.System.out
  8 0x0000003f 0x0000003f IMPORT METH     0 java.io.PrintStream imp.void println(String)
EOF
RUN


NAME=Java list symbols jdwpexeccmd.class
FILE=bins/java/jdwpexeccmd.class
CMDS=is
EXPECT=<<EOF
nth      paddr      vaddr bind   type size lib                       name                                     
--------------------------------------------------------------------------------------------------------------
  0 0x00000339 0x00000339 LOCAL  FUNC   29 JDWPExecCmd               void <init>()
  1 0x00000364 0x00000364 LOCAL  FUNC  233 JDWPExecCmd               String run(String)
  1 0x0000000a 0x0000000a IMPORT METH    0 java.lang.Object          imp.void <init>()
  3 0x00000012 0x00000012 IMPORT METH    0 java.lang.StringBuilder   imp.void <init>()
  4 0x00000017 0x00000017 IMPORT METH    0 java.lang.StringBuilder   imp.StringBuilder append(String)
  6 0x0000001f 0x0000001f IMPORT METH    0 java.lang.StringBuilder   imp.String toString()
  7 0x00000024 0x00000024 IMPORT METH    0 java.lang.Runtime         imp.Runtime getRuntime()
  8 0x00000029 0x00000029 IMPORT METH    0 java.lang.Runtime         imp.Process exec(String)
 11 0x00000034 0x00000034 IMPORT METH    0 java.lang.Process         imp.java.io.InputStream getInputStream()
 12 0x00000039 0x00000039 IMPORT METH    0 java.io.InputStreamReader imp.void <init>(java.io.InputStream)
 13 0x0000003e 0x0000003e IMPORT METH    0 java.io.BufferedReader    imp.void <init>(java.io.Reader)
 14 0x00000043 0x00000043 IMPORT METH    0 java.io.BufferedReader    imp.String readLine()
 15 0x00000048 0x00000048 IMPORT METH    0 java.lang.String          imp.String trim()
EOF
RUN


NAME=Java list symbols MainActivity.class
FILE=bins/java/MainActivity.class
CMDS=is
EXPECT=<<EOF
nth      paddr      vaddr bind   type  size lib                                  name                                                                                                
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  0 0x00001c87 0x00001c87 LOCAL  FUNC   113 org.radare2.installer.MainActivity   void <init>()
  1 0x00001d06 0x00001d06 LOCAL  FUNC   494 org.radare2.installer.MainActivity   void onCreate(android.os.Bundle)
  2 0x00001f02 0x00001f02 LOCAL  FUNC    74 org.radare2.installer.MainActivity   boolean onCreateOptionsMenu(android.view.Menu)
  3 0x00001f5a 0x00001f5a LOCAL  FUNC   143 org.radare2.installer.MainActivity   boolean onOptionsItemSelected(android.view.MenuItem)
  4 0x00001ff7 0x00001ff7 LOCAL  FUNC    71 org.radare2.installer.MainActivity   boolean checkForRadare()
  5 0x0000204c 0x0000204c LOCAL  FUNC    90 org.radare2.installer.MainActivity   void output(String)
  6 0x000020b4 0x000020b4 LOCAL  FUNC   392 org.radare2.installer.MainActivity   void unTarGz(String, String)
  7 0x00002254 0x00002254 LOCAL  FUNC    79 org.radare2.installer.MainActivity   void resetButtons()
  8 0x000022b1 0x000022b1 LOCAL  FUNC   807 org.radare2.installer.MainActivity   boolean download(String, String)
  9 0x000025e6 0x000025e6 LOCAL  FUNC   300 org.radare2.installer.MainActivity   void onResume()
 10 0x00002720 0x00002720 LOCAL  FUNC    47 org.radare2.installer.MainActivity   org.radare2.installer.Utils access$000(org.radare2.installer.MainActivity)
 11 0x0000275d 0x0000275d LOCAL  FUNC    58 org.radare2.installer.MainActivity   void access$100(org.radare2.installer.MainActivity, String)
 12 0x000027a5 0x000027a5 LOCAL  FUNC    47 org.radare2.installer.MainActivity   String access$200(org.radare2.installer.MainActivity)
 13 0x000027e2 0x000027e2 LOCAL  FUNC    47 org.radare2.installer.MainActivity   boolean access$300(org.radare2.installer.MainActivity)
 14 0x0000281f 0x0000281f LOCAL  FUNC    59 org.radare2.installer.MainActivity   android.widget.Button access$402(org.radare2.installer.MainActivity, android.widget.Button)
 15 0x00002868 0x00002868 LOCAL  FUNC    47 org.radare2.installer.MainActivity   android.widget.Button access$400(org.radare2.installer.MainActivity)
 16 0x000028a5 0x000028a5 LOCAL  FUNC    47 org.radare2.installer.MainActivity   android.widget.TextView access$500(org.radare2.installer.MainActivity)
 17 0x000028e2 0x000028e2 LOCAL  FUNC    47 org.radare2.installer.MainActivity   Thread access$600(org.radare2.installer.MainActivity)
 18 0x0000291f 0x0000291f LOCAL  FUNC    59 org.radare2.installer.MainActivity   Thread access$602(org.radare2.installer.MainActivity, Thread)
 19 0x00002968 0x00002968 LOCAL  FUNC    47 org.radare2.installer.MainActivity   android.os.Handler access$700(org.radare2.installer.MainActivity)
 20 0x000029a5 0x000029a5 LOCAL  FUNC    69 org.radare2.installer.MainActivity   boolean access$800(org.radare2.installer.MainActivity, String, String)
  0 0x00001c1f 0x00001c1f LOCAL  OBJ      0 org.radare2.installer.MainActivity   org.radare2.installer.MainActivity.outputView
  1 0x00001c27 0x00001c27 LOCAL  OBJ      0 org.radare2.installer.MainActivity   org.radare2.installer.MainActivity.handler
  2 0x00001c2f 0x00001c2f LOCAL  OBJ      0 org.radare2.installer.MainActivity   org.radare2.installer.MainActivity.remoteRunButton
  3 0x00001c37 0x00001c37 LOCAL  OBJ      0 org.radare2.installer.MainActivity   org.radare2.installer.MainActivity.localRunButton
  4 0x00001c3f 0x00001c3f LOCAL  OBJ      0 org.radare2.installer.MainActivity   org.radare2.installer.MainActivity.context
  5 0x00001c47 0x00001c47 LOCAL  OBJ      0 org.radare2.installer.MainActivity   org.radare2.installer.MainActivity.mUtils
  6 0x00001c4f 0x00001c4f LOCAL  OBJ      0 org.radare2.installer.MainActivity   org.radare2.installer.MainActivity.http_url_default
  7 0x00001c57 0x00001c57 LOCAL  OBJ      0 org.radare2.installer.MainActivity   org.radare2.installer.MainActivity.onLocalRunButtonClick
  8 0x00001c5f 0x00001c5f LOCAL  OBJ      0 org.radare2.installer.MainActivity   org.radare2.installer.MainActivity.thread
  9 0x00001c67 0x00001c67 LOCAL  OBJ      0 org.radare2.installer.MainActivity   org.radare2.installer.MainActivity.onRemoteRunButtonClick
  1 0x0000000a 0x0000000a IMPORT METH     0 org.radare2.installer.MainActivity   imp.boolean download(String, String)
  2 0x0000000f 0x0000000f IMPORT FIELD    0 org.radare2.installer.MainActivity   imp.org.radare2.installer.MainActivity.handler
  3 0x00000014 0x00000014 IMPORT FIELD    0 org.radare2.installer.MainActivity   imp.org.radare2.installer.MainActivity.thread
  4 0x00000019 0x00000019 IMPORT FIELD    0 org.radare2.installer.MainActivity   imp.org.radare2.installer.MainActivity.outputView
  5 0x0000001e 0x0000001e IMPORT FIELD    0 org.radare2.installer.MainActivity   imp.org.radare2.installer.MainActivity.remoteRunButton
  6 0x00000023 0x00000023 IMPORT METH     0 org.radare2.installer.MainActivity   imp.boolean checkForRadare()
  7 0x00000028 0x00000028 IMPORT FIELD    0 org.radare2.installer.MainActivity   imp.org.radare2.installer.MainActivity.http_url_default
  8 0x0000002d 0x0000002d IMPORT METH     0 org.radare2.installer.MainActivity   imp.void output(String)
  9 0x00000032 0x00000032 IMPORT FIELD    0 org.radare2.installer.MainActivity   imp.org.radare2.installer.MainActivity.mUtils
 10 0x00000037 0x00000037 IMPORT METH     0 android.app.Activity                 imp.void <init>()
 12 0x0000003f 0x0000003f IMPORT METH     0 android.os.Handler                   imp.void <init>()
 15 0x0000004a 0x0000004a IMPORT METH     0 org.radare2.installer.MainActivity$2 imp.void <init>(org.radare2.installer.MainActivity)
 16 0x0000004f 0x0000004f IMPORT FIELD    0 org.radare2.installer.MainActivity   imp.org.radare2.installer.MainActivity.onLocalRunButtonClick
 18 0x00000057 0x00000057 IMPORT METH     0 org.radare2.installer.MainActivity$3 imp.void <init>(org.radare2.installer.MainActivity)
 19 0x0000005c 0x0000005c IMPORT FIELD    0 org.radare2.installer.MainActivity   imp.org.radare2.installer.MainActivity.onRemoteRunButtonClick
 20 0x00000061 0x00000061 IMPORT METH     0 android.app.Activity                 imp.void onCreate(android.os.Bundle)
 23 0x0000006e 0x0000006e IMPORT METH     0 org.radare2.installer.MainActivity   imp.void setContentView(int)
 25 0x00000076 0x00000076 IMPORT METH     0 org.radare2.installer.MainActivity   imp.android.content.Context getApplicationContext()
 26 0x0000007b 0x0000007b IMPORT METH     0 org.radare2.installer.Utils          imp.void <init>(android.content.Context)
 29 0x00000088 0x00000088 IMPORT METH     0 org.radare2.installer.MainActivity   imp.android.view.View findViewById(int)
 34 0x0000009d 0x0000009d IMPORT METH     0 org.radare2.installer.Utils          imp.String GetPref(String)
 36 0x000000a5 0x000000a5 IMPORT METH     0 java.lang.String                     imp.boolean equals(Object)
 37 0x000000aa 0x000000aa IMPORT METH     0 android.widget.CheckBox              imp.void setChecked(boolean)
 45 0x000000c8 0x000000c8 IMPORT METH     0 android.widget.Button                imp.void setOnClickListener(android.view.View$OnClickListener)
 47 0x000000d2 0x000000d2 IMPORT FIELD    0 org.radare2.installer.MainActivity   imp.org.radare2.installer.MainActivity.localRunButton
 49 0x000000da 0x000000da IMPORT METH     0 org.radare2.installer.Utils          imp.boolean isInternetAvailable()
 50 0x000000df 0x000000df IMPORT METH     0 android.preference.PreferenceManager imp.android.content.SharedPreferences getDefaultSharedPreferences(android.content.Context)
 53 0x000000ea 0x000000ea IMPORT METH     0 org.radare2.installer.MainActivity$1 imp.void <init>(org.radare2.installer.MainActivity, android.content.SharedPreferences)
 54 0x000000ef 0x000000ef IMPORT METH     0 java.lang.Thread                     imp.void <init>(java.lang.Runnable)
 55 0x000000f4 0x000000f4 IMPORT METH     0 java.lang.Thread                     imp.void start()
 58 0x000000ff 0x000000ff IMPORT IMETH    0 android.view.Menu                    imp.android.view.MenuItem add(int, int, int, java.lang.CharSequence)
 59 0x00000104 0x00000104 IMPORT METH     0 android.app.Activity                 imp.boolean onCreateOptionsMenu(android.view.Menu)
 60 0x00000109 0x00000109 IMPORT IMETH    0 android.view.MenuItem                imp.int getItemId()
 63 0x00000114 0x00000114 IMPORT METH     0 android.content.Intent               imp.void <init>(android.content.Context, Class)
 65 0x0000011e 0x0000011e IMPORT METH     0 android.content.Intent               imp.android.content.Intent setFlags(int)
 66 0x00000123 0x00000123 IMPORT METH     0 org.radare2.installer.MainActivity   imp.void startActivity(android.content.Intent)
 69 0x0000012e 0x0000012e IMPORT METH     0 java.io.File                         imp.void <init>(String)
 70 0x00000133 0x00000133 IMPORT METH     0 java.io.File                         imp.boolean exists()
 72 0x0000013b 0x0000013b IMPORT METH     0 org.radare2.installer.MainActivity$4 imp.void <init>(org.radare2.installer.MainActivity, String)
 73 0x00000140 0x00000140 IMPORT METH     0 android.os.Handler                   imp.boolean post(java.lang.Runnable)
 76 0x0000014b 0x0000014b IMPORT METH     0 java.io.FileInputStream              imp.void <init>(String)
 77 0x00000150 0x00000150 IMPORT METH     0 java.util.zip.GZIPInputStream        imp.void <init>(java.io.InputStream)
 78 0x00000155 0x00000155 IMPORT METH     0 java.lang.String                     imp.int lastIndexOf(int)
 79 0x0000015a 0x0000015a IMPORT METH     0 java.lang.String                     imp.String substring(int, int)
 82 0x00000165 0x00000165 IMPORT METH     0 java.lang.StringBuilder              imp.void <init>()
 83 0x0000016a 0x0000016a IMPORT METH     0 java.lang.StringBuilder              imp.StringBuilder append(String)
 85 0x00000172 0x00000172 IMPORT METH     0 java.lang.StringBuilder              imp.String toString()
 87 0x0000017a 0x0000017a IMPORT METH     0 java.io.FileOutputStream             imp.void <init>(String)
 88 0x0000017f 0x0000017f IMPORT METH     0 java.util.zip.GZIPInputStream        imp.int read(byte[])
 89 0x00000184 0x00000184 IMPORT METH     0 java.io.OutputStream                 imp.void write(byte[], int, int)
 90 0x00000189 0x00000189 IMPORT METH     0 java.util.zip.GZIPInputStream        imp.void close()
 91 0x0000018e 0x0000018e IMPORT METH     0 java.io.OutputStream                 imp.void close()
 93 0x00000196 0x00000196 IMPORT METH     0 com.ice.tar.TarArchive               imp.void <init>(java.io.InputStream)
 94 0x0000019b 0x0000019b IMPORT METH     0 com.ice.tar.TarArchive               imp.void extractContents(java.io.File)
 95 0x000001a0 0x000001a0 IMPORT METH     0 com.ice.tar.TarArchive               imp.void closeArchive()
 96 0x000001a5 0x000001a5 IMPORT METH     0 java.io.File                         imp.boolean delete()
 98 0x000001ad 0x000001ad IMPORT METH     0 org.radare2.installer.MainActivity$5 imp.void <init>(org.radare2.installer.MainActivity)
100 0x000001b5 0x000001b5 IMPORT METH     0 java.net.URL                         imp.void <init>(String)
101 0x000001ba 0x000001ba IMPORT METH     0 java.net.URL                         imp.java.net.URLConnection openConnection()
104 0x000001c5 0x000001c5 IMPORT METH     0 java.net.HttpURLConnection           imp.void setRequestMethod(String)
105 0x000001ca 0x000001ca IMPORT METH     0 java.net.HttpURLConnection           imp.void setInstanceFollowRedirects(boolean)
106 0x000001cf 0x000001cf IMPORT METH     0 java.net.HttpURLConnection           imp.java.util.Map getRequestProperties()
107 0x000001d4 0x000001d4 IMPORT METH     0 java.net.HttpURLConnection           imp.void connect()
108 0x000001d9 0x000001d9 IMPORT METH     0 java.net.HttpURLConnection           imp.int getContentLength()
110 0x000001e1 0x000001e1 IMPORT METH     0 java.lang.StringBuilder              imp.StringBuilder append(int)
113 0x000001ec 0x000001ec IMPORT METH     0 java.net.HttpURLConnection           imp.String getHeaderField(String)
114 0x000001f1 0x000001f1 IMPORT METH     0 org.radare2.installer.Utils          imp.void StorePref(String, String)
115 0x000001f6 0x000001f6 IMPORT METH     0 java.net.HttpURLConnection           imp.java.io.InputStream getInputStream()
117 0x000001fe 0x000001fe IMPORT METH     0 java.io.InputStream                  imp.int read(byte[])
118 0x00000203 0x00000203 IMPORT METH     0 java.io.FileOutputStream             imp.void write(byte[], int, int)
121 0x0000020e 0x0000020e IMPORT METH     0 org.radare2.installer.MainActivity   imp.void resetButtons()
123 0x00000216 0x00000216 IMPORT METH     0 java.io.FileOutputStream             imp.void close()
124 0x0000021b 0x0000021b IMPORT METH     0 java.io.InputStream                  imp.void close()
125 0x00000220 0x00000220 IMPORT METH     0 java.net.HttpURLConnection           imp.void disconnect()
127 0x00000228 0x00000228 IMPORT METH     0 java.lang.Exception                  imp.void printStackTrace()
128 0x0000022d 0x0000022d IMPORT METH     0 android.app.Activity                 imp.void onResume()
131 0x00000238 0x00000238 IMPORT IMETH    0 android.content.SharedPreferences    imp.String getString(String, String)
132 0x0000023d 0x0000023d IMPORT METH     0 java.lang.Integer                    imp.int parseInt(String)
134 0x00000245 0x00000245 IMPORT IMETH    0 android.content.SharedPreferences    imp.boolean getBoolean(String, boolean)
137 0x00000250 0x00000250 IMPORT METH     0 org.radare2.installer.MainActivity   imp.Object getSystemService(String)
140 0x0000025b 0x0000025b IMPORT METH     0 android.app.PendingIntent            imp.android.app.PendingIntent getService(android.content.Context, int, android.content.Intent, int)
141 0x00000260 0x00000260 IMPORT METH     0 android.app.AlarmManager             imp.void cancel(android.app.PendingIntent)
142 0x00000265 0x00000265 IMPORT METH     0 android.os.SystemClock               imp.long elapsedRealtime()
143 0x0000026a 0x0000026a IMPORT METH     0 android.app.AlarmManager             imp.void setInexactRepeating(int, long, long, android.app.PendingIntent)
EOF
RUN


NAME=Java list symbols Main.class
FILE=bins/java/Main.class
CMDS=is
EXPECT=<<EOF
nth      paddr      vaddr bind   type  size lib                     name                                             
---------------------------------------------------------------------------------------------------------------------
  0 0x00000389 0x00000389 LOCAL  FUNC    29 Main                    void <init>()
  1 0x000003b4 0x000003b4 LOCAL  FUNC   206 Main                    void main(String[])
  1 0x0000000a 0x0000000a IMPORT METH     0 java.lang.Object        imp.void <init>()
  2 0x0000000f 0x0000000f IMPORT FIELD    0 java.lang.System        imp.System.out
  4 0x00000017 0x00000017 IMPORT METH     0 java.io.PrintStream     imp.void println(String)
  8 0x00000025 0x00000025 IMPORT METH     0 java.io.FileReader      imp.void <init>(String)
  9 0x0000002a 0x0000002a IMPORT METH     0 java.io.BufferedReader  imp.void <init>(java.io.Reader)
 10 0x0000002f 0x0000002f IMPORT METH     0 java.io.BufferedReader  imp.String readLine()
 12 0x00000037 0x00000037 IMPORT METH     0 java.lang.StringBuilder imp.void <init>()
 14 0x0000003f 0x0000003f IMPORT METH     0 java.lang.StringBuilder imp.StringBuilder append(String)
 15 0x00000044 0x00000044 IMPORT METH     0 java.lang.StringBuilder imp.String toString()
 16 0x00000049 0x00000049 IMPORT METH     0 java.io.BufferedReader  imp.void close()
 18 0x00000051 0x00000051 IMPORT FIELD    0 java.lang.System        imp.System.err
 21 0x0000005c 0x0000005c IMPORT METH     0 java.io.PrintStream     imp.java.io.PrintStream format(String, Object[])
 22 0x00000061 0x00000061 IMPORT METH     0 java.lang.Exception     imp.void printStackTrace()
EOF
RUN


NAME=Java list symbols sjybq.class
FILE=bins/java/sjybq.class
CMDS=is
EXPECT=<<EOF
nth paddr vaddr bind type size lib name 
----------------------------------------
EOF
RUN


NAME=Java list symbols test.class
FILE=bins/java/test.class
CMDS=is
EXPECT=<<EOF
nth      paddr      vaddr bind   type  size lib                                                name                                                                          
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  0 0x000008f9 0x000008f9 LOCAL  FUNC    39 test                                               void <init>()
  1 0x0000092e 0x0000092e LOCAL  FUNC    50 test                                               void <init>(groovy.lang.Binding)
  2 0x0000096e 0x0000096e LOCAL  FUNC    50 test                                               void main(String[])
  3 0x000009ae 0x000009ae LOCAL  FUNC   254 test                                               Object run()
  4 0x00000aba 0x00000aba LOCAL  FUNC    51 test                                               groovy.lang.MetaClass $getStaticMetaClass()
  5 0x00000afb 0x00000afb LOCAL  FUNC    97 test                                               void $createCallSiteArray_1(String[])
  6 0x00000b6a 0x00000b6a LOCAL  FUNC    33 test                                               org.codehaus.groovy.runtime.callsite.CallSiteArray $createCallSiteArray()
  7 0x00000b99 0x00000b99 LOCAL  FUNC    52 test                                               org.codehaus.groovy.runtime.callsite.CallSite[] $getCallSiteArray()
  0 0x000008c9 0x000008c9 LOCAL  OBJ      0 test                                               test.$staticClassInfo
  1 0x000008d1 0x000008d1 LOCAL  OBJ      0 test                                               test.__$stMC
  2 0x000008d9 0x000008d9 LOCAL  OBJ      0 test                                               test.$callSiteArray
 13 0x0000009c 0x0000009c IMPORT METH     0 groovy.lang.Script                                 imp.void <init>()
 17 0x000000ef 0x000000ef IMPORT METH     0 test                                               imp.org.codehaus.groovy.runtime.callsite.CallSite[] $getCallSiteArray()
 22 0x00000124 0x00000124 IMPORT METH     0 groovy.lang.Script                                 imp.void <init>(groovy.lang.Binding)
 35 0x0000022b 0x0000022b IMPORT IMETH    0 org.codehaus.groovy.runtime.callsite.CallSite      imp.Object call(Object, Object, Object)
 55 0x00000317 0x00000317 IMPORT IMETH    0 org.codehaus.groovy.runtime.callsite.CallSite      imp.Object callConstructor(Object, Object)
 61 0x0000038b 0x0000038b IMPORT METH     0 org.codehaus.groovy.runtime.ScriptBytecodeAdapter  imp.java.util.Map createMap(Object[])
 67 0x000003a7 0x000003a7 IMPORT IMETH    0 org.codehaus.groovy.runtime.callsite.CallSite      imp.Object call(Object, Object)
 71 0x00000402 0x00000402 IMPORT IMETH    0 org.codehaus.groovy.runtime.callsite.CallSite      imp.Object callCurrent(groovy.lang.GroovyObject, Object)
 79 0x00000459 0x00000459 IMPORT IMETH    0 org.codehaus.groovy.runtime.callsite.CallSite      imp.Object callGetProperty(Object)
 92 0x000004b5 0x000004b5 IMPORT IMETH    0 org.codehaus.groovy.runtime.callsite.CallSite      imp.Object call(Object)
100 0x0000052d 0x0000052d IMPORT METH     0 java.lang.Object                                   imp.Class getClass()
104 0x00000575 0x00000575 IMPORT METH     0 org.codehaus.groovy.runtime.ScriptBytecodeAdapter  imp.groovy.lang.MetaClass initMetaClass(Object)
106 0x0000057f 0x0000057f IMPORT FIELD    0 test                                               imp.test.$staticClassInfo
112 0x00000606 0x00000606 IMPORT METH     0 org.codehaus.groovy.reflection.ClassInfo           imp.org.codehaus.groovy.reflection.ClassInfo getClassInfo(Class)
115 0x0000061f 0x0000061f IMPORT METH     0 org.codehaus.groovy.reflection.ClassInfo           imp.groovy.lang.MetaClass getMetaClass()
147 0x00000767 0x00000767 IMPORT METH     0 test                                               imp.void $createCallSiteArray_1(String[])
152 0x000007d3 0x000007d3 IMPORT METH     0 org.codehaus.groovy.runtime.callsite.CallSiteArray imp.void <init>(Class, String[])
154 0x000007dd 0x000007dd IMPORT FIELD    0 test                                               imp.test.$callSiteArray
159 0x0000080e 0x0000080e IMPORT METH     0 java.lang.ref.SoftReference                        imp.Object get()
161 0x00000818 0x00000818 IMPORT METH     0 test                                               imp.org.codehaus.groovy.runtime.callsite.CallSiteArray $createCallSiteArray()
164 0x0000083a 0x0000083a IMPORT METH     0 java.lang.ref.SoftReference                        imp.void <init>(Object)
168 0x0000087f 0x0000087f IMPORT FIELD    0 org.codehaus.groovy.runtime.callsite.CallSiteArray imp.org.codehaus.groovy.runtime.callsite.CallSiteArray.array
EOF
RUN


NAME=Java list symbols TryWithResources.class
FILE=bins/java/TryWithResources.class
CMDS=is
EXPECT=<<EOF
nth      paddr      vaddr bind   type   size lib                        name                              
----------------------------------------------------------------------------------------------------------
  0 0x00000421 0x00000421 LOCAL  FUNC     21 TryWithResources           TryWithResources $(int)
  1 0x00000444 0x00000444 LOCAL  FUNC     50 TryWithResources           void <init>(int)
  2 0x00000484 0x00000484 LOCAL  FUNC     62 TryWithResources           void close()
  3 0x000004d0 0x000004d0 LOCAL  FUNC     29 TryWithResources           void $(int, RuntimeException)
  4 0x000004fb 0x000004fb LOCAL  FUNC     20 TryWithResources           void $(RuntimeException)
  5 0x0000051d 0x0000051d LOCAL  FUNC     23 TryWithResources           void main(String[])
  6 0x0000054c 0x0000054c LOCAL  FUNC  18879 TryWithResources           TryWithResources.main
  7 0x00004f19 0x00004f19 LOCAL  FUNC     24 TryWithResources           void <clinit>()
  0 0x000003f9 0x000003f9 LOCAL  OBJ       0 TryWithResources           TryWithResources.$
  1 0x00000401 0x00000401 LOCAL  OBJ       0 TryWithResources           TryWithResources.i
  2 0x0000000d 0x0000000d IMPORT METH      0 TryWithResources           imp.void <init>(int)
  3 0x00000012 0x00000012 IMPORT METH      0 java.lang.RuntimeException imp.void <init>()
  4 0x00000017 0x00000017 IMPORT FIELD     0 java.lang.System           imp.System.out
  6 0x0000001f 0x0000001f IMPORT METH      0 java.lang.StringBuilder    imp.void <init>()
  8 0x00000027 0x00000027 IMPORT METH      0 java.lang.StringBuilder    imp.StringBuilder append(String)
  9 0x0000002c 0x0000002c IMPORT METH      0 java.lang.StringBuilder    imp.StringBuilder append(int)
 10 0x00000031 0x00000031 IMPORT METH      0 java.lang.StringBuilder    imp.String toString()
 11 0x00000036 0x00000036 IMPORT METH      0 java.io.PrintStream        imp.void println(String)
 12 0x0000003b 0x0000003b IMPORT FIELD     0 TryWithResources           imp.TryWithResources.i
 14 0x00000043 0x00000043 IMPORT METH      0 java.io.PrintStream        imp.void println(Object)
 15 0x00000048 0x00000048 IMPORT FIELD     0 TryWithResources           imp.TryWithResources.$
 17 0x00000050 0x00000050 IMPORT FUNC      0 TryWithResources           imp.TryWithResources.main
 19 0x00000058 0x00000058 IMPORT METH      0 TryWithResources           imp.void $(RuntimeException)
 20 0x0000005d 0x0000005d IMPORT METH      0 java.io.PrintStream        imp.void println(int)
 21 0x00000062 0x00000062 IMPORT METH      0 TryWithResources           imp.void $(int, RuntimeException)
 22 0x00000067 0x00000067 IMPORT METH      0 TryWithResources           imp.void close()
 24 0x0000006f 0x0000006f IMPORT METH      0 java.lang.Throwable        imp.void addSuppressed(Throwable)
 25 0x00000074 0x00000074 IMPORT METH      0 TryWithResources           imp.TryWithResources $(int)
 26 0x00000079 0x00000079 IMPORT IMETH     0 java.lang.AutoCloseable    imp.void close()
 27 0x0000007e 0x0000007e IMPORT METH      0 java.lang.Throwable        imp.void printStackTrace()
EOF
RUN


NAME=Java list classes crash2.class
FILE=bins/java/crash2.class
CMDS=<<EOF
ic
icf 'unknown_class'
icm 'unknown_class'
EOF
EXPECT=<<EOF
   address        min        max name          super         
-------------------------------------------------------------
0x00000000 0x00000000 0x00000000 unknown_class unknown_super
address index class flags name type 
------------------------------------
address index class flags name 
-------------------------------
EOF
RUN


NAME=Java list classes DemoTest.class
FILE=bins/java/DemoTest.class
CMDS=<<EOF
ic
icf 'DemoTest'
icm 'DemoTest'
EOF
EXPECT=<<EOF
   address        min        max name     super  
-------------------------------------------------
0x00000000 0x00000190 0x00000236 DemoTest Object
address index class flags name type 
------------------------------------
   address index class    flags name                
----------------------------------------------------
0x00000190     0 DemoTest p     int fun()
0x000001b9     1 DemoTest p     void <init>()
0x000001e8     2 DemoTest p     String res()
0x00000211     3 DemoTest sp    void main(String[])
EOF
RUN


NAME=Java list classes ExCaseTableSwitch.class
FILE=bins/java/ExCaseTableSwitch.class
CMDS=<<EOF
ic
icf 'CaseTableSwitch'
icm 'CaseTableSwitch'
EOF
EXPECT=<<EOF
   address        min        max name            super  
--------------------------------------------------------
0x00000000 0x00000464 0x00000d74 CaseTableSwitch Object
address index class flags name type 
------------------------------------
   address index class           flags name                         
--------------------------------------------------------------------
0x00000464     0 CaseTableSwitch p     void <init>()
0x000004a1     1 CaseTableSwitch p     String a(int)
0x000005df     2 CaseTableSwitch p     int a(String)
0x00000623     3 CaseTableSwitch p     int a()
0x0000065d     4 CaseTableSwitch p     void hopskip_line_switch()
0x00000816     5 CaseTableSwitch p     void straight_line_switch()
0x000009ea     6 CaseTableSwitch p     void straight_line_switch_()
0x00000bb6     7 CaseTableSwitch sp    void main(String[])
EOF
RUN


NAME=Java list classes fuckedup.class
FILE=bins/java/fuckedup.class
CMDS=<<EOF
ic
icf 'unknown_class'
icm 'unknown_class'
EOF
EXPECT=<<EOF
   address        min        max name          super         
-------------------------------------------------------------
0x00000000 0x00000000 0x00000000 unknown_class unknown_super
address index class flags name type 
------------------------------------
address index class flags name 
-------------------------------
EOF
RUN


NAME=Java list classes Hello.class
FILE=bins/java/Hello.class
CMDS=<<EOF
ic
icf 'Hello'
icm 'Hello'
EOF
EXPECT=<<EOF
   address        min        max name  super  
----------------------------------------------
0x00000000 0x0000022b 0x000002d3 Hello Object
   address index class flags name type   
-----------------------------------------
0x0000020b     0 Hello P     who  String
   address index class flags name                
-------------------------------------------------
0x0000022b     0 Hello p     void <init>(String)
0x00000263     1 Hello p     void say()
0x000002aa     2 Hello sp    void main(String[])
EOF
RUN


NAME=Java list classes HiKt.class
FILE=bins/java/HiKt.class
CMDS=<<EOF
ic
icf 'HiKt'
icm 'HiKt'
EOF
EXPECT=<<EOF
   address        min        max name super  
---------------------------------------------
0x00000000 0x00000225 0x00000256 HiKt Object
address index class flags name type 
------------------------------------
   address index class flags name                
-------------------------------------------------
0x00000225     0 HiKt  spf   void main(String[])
EOF
RUN


NAME=Java list classes invisible.class
FILE=bins/java/invisible.class
CMDS=<<EOF
ic
icf 'Test'
icm 'Test'
EOF
EXPECT=<<EOF
   address        min        max name super  
---------------------------------------------
0x00000000 0x00000120 0x00000131 Test Object
address index class flags name type 
------------------------------------
   address index class flags name                
-------------------------------------------------
0x00000120     0 Test  sp    void main(String[])
EOF
RUN


NAME=Java list classes jdwpexeccmd.class
FILE=bins/java/jdwpexeccmd.class
CMDS=<<EOF
ic
icf 'JDWPExecCmd'
icm 'JDWPExecCmd'
EOF
EXPECT=<<EOF
   address        min        max name        super  
----------------------------------------------------
0x00000000 0x00000339 0x0000044d JDWPExecCmd Object
address index class flags name type 
------------------------------------
   address index class       flags name               
------------------------------------------------------
0x00000339     0 JDWPExecCmd p     void <init>()
0x00000364     1 JDWPExecCmd sp    String run(String)
EOF
RUN


NAME=Java list classes MainActivity.class
FILE=bins/java/MainActivity.class
CMDS=<<EOF
ic
icf 'org.radare2.installer.MainActivity'
icm 'org.radare2.installer.MainActivity'
EOF
EXPECT=<<EOF
   address        min        max name                               super                
-----------------------------------------------------------------------------------------
0x00000000 0x00001c87 0x000029ea org.radare2.installer.MainActivity android.app.Activity
   address index class                              flags name                   type                              
-------------------------------------------------------------------------------------------------------------------
0x00001c1f     0 org.radare2.installer.MainActivity P     outputView             android.widget.TextView
0x00001c27     1 org.radare2.installer.MainActivity P     handler                android.os.Handler
0x00001c2f     2 org.radare2.installer.MainActivity P     remoteRunButton        android.widget.Button
0x00001c37     3 org.radare2.installer.MainActivity P     localRunButton         android.widget.Button
0x00001c3f     4 org.radare2.installer.MainActivity P     context                android.content.Context
0x00001c47     5 org.radare2.installer.MainActivity P     mUtils                 org.radare2.installer.Utils
0x00001c4f     6 org.radare2.installer.MainActivity P     http_url_default       String
0x00001c57     7 org.radare2.installer.MainActivity P     onLocalRunButtonClick  android.view.View$OnClickListener
0x00001c5f     8 org.radare2.installer.MainActivity P     thread                 Thread
0x00001c67     9 org.radare2.installer.MainActivity P     onRemoteRunButtonClick android.view.View$OnClickListener
   address index class                              flags name                                                                                        
------------------------------------------------------------------------------------------------------------------------------------------------------
0x00001c87     0 org.radare2.installer.MainActivity p     void <init>()
0x00001d06     1 org.radare2.installer.MainActivity p     void onCreate(android.os.Bundle)
0x00001f02     2 org.radare2.installer.MainActivity p     boolean onCreateOptionsMenu(android.view.Menu)
0x00001f5a     3 org.radare2.installer.MainActivity p     boolean onOptionsItemSelected(android.view.MenuItem)
0x00001ff7     4 org.radare2.installer.MainActivity P     boolean checkForRadare()
0x0000204c     5 org.radare2.installer.MainActivity P     void output(String)
0x000020b4     6 org.radare2.installer.MainActivity sp    void unTarGz(String, String)
0x00002254     7 org.radare2.installer.MainActivity P     void resetButtons()
0x000022b1     8 org.radare2.installer.MainActivity P     boolean download(String, String)
0x000025e6     9 org.radare2.installer.MainActivity p     void onResume()
0x00002720    10 org.radare2.installer.MainActivity sh    org.radare2.installer.Utils access$000(org.radare2.installer.MainActivity)
0x0000275d    11 org.radare2.installer.MainActivity sh    void access$100(org.radare2.installer.MainActivity, String)
0x000027a5    12 org.radare2.installer.MainActivity sh    String access$200(org.radare2.installer.MainActivity)
0x000027e2    13 org.radare2.installer.MainActivity sh    boolean access$300(org.radare2.installer.MainActivity)
0x0000281f    14 org.radare2.installer.MainActivity sh    android.widget.Button access$402(org.radare2.installer.MainActivity, android.widget.Button)
0x00002868    15 org.radare2.installer.MainActivity sh    android.widget.Button access$400(org.radare2.installer.MainActivity)
0x000028a5    16 org.radare2.installer.MainActivity sh    android.widget.TextView access$500(org.radare2.installer.MainActivity)
0x000028e2    17 org.radare2.installer.MainActivity sh    Thread access$600(org.radare2.installer.MainActivity)
0x0000291f    18 org.radare2.installer.MainActivity sh    Thread access$602(org.radare2.installer.MainActivity, Thread)
0x00002968    19 org.radare2.installer.MainActivity sh    android.os.Handler access$700(org.radare2.installer.MainActivity)
0x000029a5    20 org.radare2.installer.MainActivity sh    boolean access$800(org.radare2.installer.MainActivity, String, String)
EOF
RUN


NAME=Java list classes Main.class
FILE=bins/java/Main.class
CMDS=<<EOF
ic
icf 'Main'
icm 'Main'
EOF
EXPECT=<<EOF
   address        min        max name super  
---------------------------------------------
0x00000000 0x00000389 0x00000482 Main Object
address index class flags name type 
------------------------------------
   address index class flags name                
-------------------------------------------------
0x00000389     0 Main  p     void <init>()
0x000003b4     1 Main  sp    void main(String[])
EOF
RUN


NAME=Java list classes sjybq.class
FILE=bins/java/sjybq.class
CMDS=ic
EXPECT=<<EOF
address min max name super 
---------------------------
EOF
RUN


NAME=Java list classes test.class
FILE=bins/java/test.class
CMDS=<<EOF
ic
icf 'test'
icm 'test'
EOF
EXPECT=<<EOF
   address        min        max name super              
---------------------------------------------------------
0x00000000 0x000008f9 0x00000bcd test groovy.lang.Script
   address index class flags name             type                                     
---------------------------------------------------------------------------------------
0x000008c9     0 test  sPh   $staticClassInfo org.codehaus.groovy.reflection.ClassInfo
0x000008d1     1 test  spgh  __$stMC          boolean
0x000008d9     2 test  sPh   $callSiteArray   java.lang.ref.SoftReference
   address index class flags name                                                                      
-------------------------------------------------------------------------------------------------------
0x000008f9     0 test  p     void <init>()
0x0000092e     1 test  p     void <init>(groovy.lang.Binding)
0x0000096e     2 test  spg   void main(String[])
0x000009ae     3 test  p     Object run()
0x00000aba     4 test  rh    groovy.lang.MetaClass $getStaticMetaClass()
0x00000afb     5 test  sPh   void $createCallSiteArray_1(String[])
0x00000b6a     6 test  sPh   org.codehaus.groovy.runtime.callsite.CallSiteArray $createCallSiteArray()
0x00000b99     7 test  sPh   org.codehaus.groovy.runtime.callsite.CallSite[] $getCallSiteArray()
EOF
RUN


NAME=Java list classes TryWithResources.class
FILE=bins/java/TryWithResources.class
CMDS=<<EOF
ic
icf 'TryWithResources'
icm 'TryWithResources'
EOF
EXPECT=<<EOF
   address        min        max name             super            
-------------------------------------------------------------------
0x00000000 0x00000421 0x00004f31 TryWithResources RuntimeException
   address index class            flags name type             
--------------------------------------------------------------
0x000003f9     0 TryWithResources sp    $    TryWithResources
0x00000401     1 TryWithResources pf    i    int
   address index class            flags name                          
----------------------------------------------------------------------
0x00000421     0 TryWithResources sp    TryWithResources $(int)
0x00000444     1 TryWithResources p     void <init>(int)
0x00000484     2 TryWithResources p     void close()
0x000004d0     3 TryWithResources sp    void $(int, RuntimeException)
0x000004fb     4 TryWithResources sp    void $(RuntimeException)
0x0000051d     5 TryWithResources sp    void main(String[])
0x0000054c     6 TryWithResources pg    TryWithResources.main
0x00004f19     7 TryWithResources s     void <clinit>()
EOF
RUN




NAME=Java list imports crash2.class
FILE=bins/java/crash2.class
CMDS=ii
EXPECT=<<EOF
nth vaddr bind type lib name 
-----------------------------
EOF
RUN


NAME=Java list imports DemoTest.class
FILE=bins/java/DemoTest.class
CMDS=ii
EXPECT=<<EOF
nth      vaddr bind type  lib                 name    
------------------------------------------------------
  1 ---------- NONE METH  java.lang.Object    <init>
  3 ---------- NONE FIELD java.lang.System    out
  5 ---------- NONE METH  java.io.PrintStream println
EOF
RUN


NAME=Java list imports ExCaseTableSwitch.class
FILE=bins/java/ExCaseTableSwitch.class
CMDS=ii
EXPECT=<<EOF
nth      vaddr bind type  lib                     name                 
-----------------------------------------------------------------------
  8 ---------- NONE METH  java.lang.Object        <init>
 16 ---------- NONE FIELD java.lang.System        out
 26 ---------- NONE METH  java.lang.StringBuilder <init>
 29 ---------- NONE METH  java.lang.StringBuilder append
 33 ---------- NONE METH  java.lang.StringBuilder toString
 37 ---------- NONE METH  java.io.PrintStream     println
 46 ---------- NONE METH  java.lang.String        <init>
 55 ---------- NONE METH  java.lang.Integer       valueOf
 61 ---------- NONE METH  TestVariableSwitchUp    TestMultipleVariable
EOF
RUN


NAME=Java list imports fuckedup.class
FILE=bins/java/fuckedup.class
CMDS=ii
EXPECT=<<EOF
nth vaddr bind type lib name 
-----------------------------
EOF
RUN


NAME=Java list imports Hello.class
FILE=bins/java/Hello.class
CMDS=ii
EXPECT=<<EOF
nth      vaddr bind type  lib                     name     
-----------------------------------------------------------
  1 ---------- NONE METH  java.lang.Object        <init>
  2 ---------- NONE FIELD Hello                   who
  3 ---------- NONE FIELD java.lang.System        out
  5 ---------- NONE METH  java.lang.StringBuilder <init>
  7 ---------- NONE METH  java.lang.StringBuilder append
  8 ---------- NONE METH  java.lang.StringBuilder toString
  9 ---------- NONE METH  java.io.PrintStream     println
 12 ---------- NONE METH  Hello                   <init>
 13 ---------- NONE METH  Hello                   say
EOF
RUN


NAME=Java list imports HiKt.class
FILE=bins/java/HiKt.class
CMDS=ii
EXPECT=<<EOF
nth      vaddr bind type lib                            name                    
--------------------------------------------------------------------------------
 15 ---------- NONE METH kotlin.jvm.internal.Intrinsics checkParameterIsNotNull
EOF
RUN


NAME=Java list imports invisible.class
FILE=bins/java/invisible.class
CMDS=ii
EXPECT=<<EOF
nth      vaddr bind type  lib                 name    
------------------------------------------------------
  7 ---------- NONE FIELD java.lang.System    out
  8 ---------- NONE METH  java.io.PrintStream println
EOF
RUN


NAME=Java list imports jdwpexeccmd.class
FILE=bins/java/jdwpexeccmd.class
CMDS=ii
EXPECT=<<EOF
nth      vaddr bind type lib                       name           
------------------------------------------------------------------
  1 ---------- NONE METH java.lang.Object          <init>
  3 ---------- NONE METH java.lang.StringBuilder   <init>
  4 ---------- NONE METH java.lang.StringBuilder   append
  6 ---------- NONE METH java.lang.StringBuilder   toString
  7 ---------- NONE METH java.lang.Runtime         getRuntime
  8 ---------- NONE METH java.lang.Runtime         exec
 11 ---------- NONE METH java.lang.Process         getInputStream
 12 ---------- NONE METH java.io.InputStreamReader <init>
 13 ---------- NONE METH java.io.BufferedReader    <init>
 14 ---------- NONE METH java.io.BufferedReader    readLine
 15 ---------- NONE METH java.lang.String          trim
EOF
RUN


NAME=Java list imports MainActivity.class
FILE=bins/java/MainActivity.class
CMDS=ii
EXPECT=<<EOF
nth      vaddr bind type  lib                                  name                        
-------------------------------------------------------------------------------------------
  1 ---------- NONE METH  org.radare2.installer.MainActivity   download
  2 ---------- NONE FIELD org.radare2.installer.MainActivity   handler
  3 ---------- NONE FIELD org.radare2.installer.MainActivity   thread
  4 ---------- NONE FIELD org.radare2.installer.MainActivity   outputView
  5 ---------- NONE FIELD org.radare2.installer.MainActivity   remoteRunButton
  6 ---------- NONE METH  org.radare2.installer.MainActivity   checkForRadare
  7 ---------- NONE FIELD org.radare2.installer.MainActivity   http_url_default
  8 ---------- NONE METH  org.radare2.installer.MainActivity   output
  9 ---------- NONE FIELD org.radare2.installer.MainActivity   mUtils
 10 ---------- NONE METH  android.app.Activity                 <init>
 12 ---------- NONE METH  android.os.Handler                   <init>
 15 ---------- NONE METH  org.radare2.installer.MainActivity$2 <init>
 16 ---------- NONE FIELD org.radare2.installer.MainActivity   onLocalRunButtonClick
 18 ---------- NONE METH  org.radare2.installer.MainActivity$3 <init>
 19 ---------- NONE FIELD org.radare2.installer.MainActivity   onRemoteRunButtonClick
 20 ---------- NONE METH  android.app.Activity                 onCreate
 23 ---------- NONE METH  org.radare2.installer.MainActivity   setContentView
 25 ---------- NONE METH  org.radare2.installer.MainActivity   getApplicationContext
 26 ---------- NONE METH  org.radare2.installer.Utils          <init>
 29 ---------- NONE METH  org.radare2.installer.MainActivity   findViewById
 34 ---------- NONE METH  org.radare2.installer.Utils          GetPref
 36 ---------- NONE METH  java.lang.String                     equals
 37 ---------- NONE METH  android.widget.CheckBox              setChecked
 45 ---------- NONE METH  android.widget.Button                setOnClickListener
 47 ---------- NONE FIELD org.radare2.installer.MainActivity   localRunButton
 49 ---------- NONE METH  org.radare2.installer.Utils          isInternetAvailable
 50 ---------- NONE METH  android.preference.PreferenceManager getDefaultSharedPreferences
 53 ---------- NONE METH  org.radare2.installer.MainActivity$1 <init>
 54 ---------- NONE METH  java.lang.Thread                     <init>
 55 ---------- NONE METH  java.lang.Thread                     start
 58 ---------- NONE IMETH android.view.Menu                    add
 59 ---------- NONE METH  android.app.Activity                 onCreateOptionsMenu
 60 ---------- NONE IMETH android.view.MenuItem                getItemId
 63 ---------- NONE METH  android.content.Intent               <init>
 65 ---------- NONE METH  android.content.Intent               setFlags
 66 ---------- NONE METH  org.radare2.installer.MainActivity   startActivity
 69 ---------- NONE METH  java.io.File                         <init>
 70 ---------- NONE METH  java.io.File                         exists
 72 ---------- NONE METH  org.radare2.installer.MainActivity$4 <init>
 73 ---------- NONE METH  android.os.Handler                   post
 76 ---------- NONE METH  java.io.FileInputStream              <init>
 77 ---------- NONE METH  java.util.zip.GZIPInputStream        <init>
 78 ---------- NONE METH  java.lang.String                     lastIndexOf
 79 ---------- NONE METH  java.lang.String                     substring
 82 ---------- NONE METH  java.lang.StringBuilder              <init>
 83 ---------- NONE METH  java.lang.StringBuilder              append
 85 ---------- NONE METH  java.lang.StringBuilder              toString
 87 ---------- NONE METH  java.io.FileOutputStream             <init>
 88 ---------- NONE METH  java.util.zip.GZIPInputStream        read
 89 ---------- NONE METH  java.io.OutputStream                 write
 90 ---------- NONE METH  java.util.zip.GZIPInputStream        close
 91 ---------- NONE METH  java.io.OutputStream                 close
 93 ---------- NONE METH  com.ice.tar.TarArchive               <init>
 94 ---------- NONE METH  com.ice.tar.TarArchive               extractContents
 95 ---------- NONE METH  com.ice.tar.TarArchive               closeArchive
 96 ---------- NONE METH  java.io.File                         delete
 98 ---------- NONE METH  org.radare2.installer.MainActivity$5 <init>
100 ---------- NONE METH  java.net.URL                         <init>
101 ---------- NONE METH  java.net.URL                         openConnection
104 ---------- NONE METH  java.net.HttpURLConnection           setRequestMethod
105 ---------- NONE METH  java.net.HttpURLConnection           setInstanceFollowRedirects
106 ---------- NONE METH  java.net.HttpURLConnection           getRequestProperties
107 ---------- NONE METH  java.net.HttpURLConnection           connect
108 ---------- NONE METH  java.net.HttpURLConnection           getContentLength
110 ---------- NONE METH  java.lang.StringBuilder              append
113 ---------- NONE METH  java.net.HttpURLConnection           getHeaderField
114 ---------- NONE METH  org.radare2.installer.Utils          StorePref
115 ---------- NONE METH  java.net.HttpURLConnection           getInputStream
117 ---------- NONE METH  java.io.InputStream                  read
118 ---------- NONE METH  java.io.FileOutputStream             write
121 ---------- NONE METH  org.radare2.installer.MainActivity   resetButtons
123 ---------- NONE METH  java.io.FileOutputStream             close
124 ---------- NONE METH  java.io.InputStream                  close
125 ---------- NONE METH  java.net.HttpURLConnection           disconnect
127 ---------- NONE METH  java.lang.Exception                  printStackTrace
128 ---------- NONE METH  android.app.Activity                 onResume
131 ---------- NONE IMETH android.content.SharedPreferences    getString
132 ---------- NONE METH  java.lang.Integer                    parseInt
134 ---------- NONE IMETH android.content.SharedPreferences    getBoolean
137 ---------- NONE METH  org.radare2.installer.MainActivity   getSystemService
140 ---------- NONE METH  android.app.PendingIntent            getService
141 ---------- NONE METH  android.app.AlarmManager             cancel
142 ---------- NONE METH  android.os.SystemClock               elapsedRealtime
143 ---------- NONE METH  android.app.AlarmManager             setInexactRepeating
EOF
RUN


NAME=Java list imports Main.class
FILE=bins/java/Main.class
CMDS=ii
EXPECT=<<EOF
nth      vaddr bind type  lib                     name            
------------------------------------------------------------------
  1 ---------- NONE METH  java.lang.Object        <init>
  2 ---------- NONE FIELD java.lang.System        out
  4 ---------- NONE METH  java.io.PrintStream     println
  8 ---------- NONE METH  java.io.FileReader      <init>
  9 ---------- NONE METH  java.io.BufferedReader  <init>
 10 ---------- NONE METH  java.io.BufferedReader  readLine
 12 ---------- NONE METH  java.lang.StringBuilder <init>
 14 ---------- NONE METH  java.lang.StringBuilder append
 15 ---------- NONE METH  java.lang.StringBuilder toString
 16 ---------- NONE METH  java.io.BufferedReader  close
 18 ---------- NONE FIELD java.lang.System        err
 21 ---------- NONE METH  java.io.PrintStream     format
 22 ---------- NONE METH  java.lang.Exception     printStackTrace
EOF
RUN


NAME=Java list imports sjybq.class
FILE=bins/java/sjybq.class
CMDS=ii
EXPECT=<<EOF
nth vaddr bind type lib name 
-----------------------------
EOF
RUN


NAME=Java list imports test.class
FILE=bins/java/test.class
CMDS=ii
EXPECT=<<EOF
nth      vaddr bind type  lib                                                name                   
----------------------------------------------------------------------------------------------------
 13 ---------- NONE METH  groovy.lang.Script                                 <init>
 17 ---------- NONE METH  test                                               $getCallSiteArray
 22 ---------- NONE METH  groovy.lang.Script                                 <init>
 35 ---------- NONE IMETH org.codehaus.groovy.runtime.callsite.CallSite      call
 55 ---------- NONE IMETH org.codehaus.groovy.runtime.callsite.CallSite      callConstructor
 61 ---------- NONE METH  org.codehaus.groovy.runtime.ScriptBytecodeAdapter  createMap
 67 ---------- NONE IMETH org.codehaus.groovy.runtime.callsite.CallSite      call
 71 ---------- NONE IMETH org.codehaus.groovy.runtime.callsite.CallSite      callCurrent
 79 ---------- NONE IMETH org.codehaus.groovy.runtime.callsite.CallSite      callGetProperty
 92 ---------- NONE IMETH org.codehaus.groovy.runtime.callsite.CallSite      call
100 ---------- NONE METH  java.lang.Object                                   getClass
104 ---------- NONE METH  org.codehaus.groovy.runtime.ScriptBytecodeAdapter  initMetaClass
106 ---------- NONE FIELD test                                               $staticClassInfo
112 ---------- NONE METH  org.codehaus.groovy.reflection.ClassInfo           getClassInfo
115 ---------- NONE METH  org.codehaus.groovy.reflection.ClassInfo           getMetaClass
147 ---------- NONE METH  test                                               $createCallSiteArray_1
152 ---------- NONE METH  org.codehaus.groovy.runtime.callsite.CallSiteArray <init>
154 ---------- NONE FIELD test                                               $callSiteArray
159 ---------- NONE METH  java.lang.ref.SoftReference                        get
161 ---------- NONE METH  test                                               $createCallSiteArray
164 ---------- NONE METH  java.lang.ref.SoftReference                        <init>
168 ---------- NONE FIELD org.codehaus.groovy.runtime.callsite.CallSiteArray array
EOF
RUN


NAME=Java list imports TryWithResources.class
FILE=bins/java/TryWithResources.class
CMDS=ii
EXPECT=<<EOF
nth      vaddr bind   type  lib                        name            
-----------------------------------------------------------------------
  2 ---------- NONE   METH  TryWithResources           <init>
  3 ---------- NONE   METH  java.lang.RuntimeException <init>
  4 ---------- NONE   FIELD java.lang.System           out
  6 ---------- NONE   METH  java.lang.StringBuilder    <init>
  8 ---------- NONE   METH  java.lang.StringBuilder    append
  9 ---------- NONE   METH  java.lang.StringBuilder    append
 10 ---------- NONE   METH  java.lang.StringBuilder    toString
 11 ---------- NONE   METH  java.io.PrintStream        println
 12 ---------- NONE   FIELD TryWithResources           i
 14 ---------- NONE   METH  java.io.PrintStream        println
 15 ---------- NONE   FIELD TryWithResources           $
 17 ---------- GLOBAL FUNC  TryWithResources           main
 19 ---------- NONE   METH  TryWithResources           $
 20 ---------- NONE   METH  java.io.PrintStream        println
 21 ---------- NONE   METH  TryWithResources           $
 22 ---------- NONE   METH  TryWithResources           close
 24 ---------- NONE   METH  java.lang.Throwable        addSuppressed
 25 ---------- NONE   METH  TryWithResources           $
 26 ---------- NONE   IMETH java.lang.AutoCloseable    close
 27 ---------- NONE   METH  java.lang.Throwable        printStackTrace
  0 ---------- WEAK   IFACE java.lang.AutoCloseable    *
EOF
RUN


NAME=Java list sections crash2.class
FILE=bins/java/crash2.class
CMDS=iS
EXPECT=<<EOF
     paddr size      vaddr vsize align perm name                type flags 
---------------------------------------------------------------------------
0x0000000a 0x12 0x0000000a  0x12   0x0 -r-- class.constant_pool      
EOF
RUN


NAME=Java list sections DemoTest.class
FILE=bins/java/DemoTest.class
CMDS=iS
EXPECT=<<EOF
     paddr  size      vaddr vsize align perm name                             type flags 
-----------------------------------------------------------------------------------------
0x0000000a 0x16c 0x0000000a 0x16c   0x0 -r-- class.constant_pool                   
0x0000017a  0xb6 0x0000017a  0xb6   0x0 -r-- class.methods                         
0x0000017a  0x29 0x0000017a  0x29   0x0 -r-- class.methods.fun.attr                
0x00000190  0x1b 0x00000190  0x1b   0x0 -r-x class.methods.fun.attr.0.code         
0x000001a3  0x2f 0x000001a3  0x2f   0x0 -r-- class.methods._init_.attr             
0x000001b9  0x21 0x000001b9  0x21   0x0 -r-x class.methods._init_.attr.0.code      
0x000001d2  0x29 0x000001d2  0x29   0x0 -r-- class.methods.res.attr                
0x000001e8  0x1b 0x000001e8  0x1b   0x0 -r-x class.methods.res.attr.0.code         
0x000001fb  0x35 0x000001fb  0x35   0x0 -r-- class.methods.main.attr               
0x00000211  0x25 0x00000211  0x25   0x0 -r-x class.methods.main.attr.0.code        
0x00000230   0x8 0x00000230   0x8   0x0 -r-- class.attr                            
EOF
RUN


NAME=Java list sections ExCaseTableSwitch.class
FILE=bins/java/ExCaseTableSwitch.class
CMDS=iS
EXPECT=<<EOF
     paddr  size      vaddr vsize align perm name                                            type flags 
--------------------------------------------------------------------------------------------------------
0x0000000a 0x440 0x0000000a 0x440   0x0 -r-- class.constant_pool                                  
0x0000044e 0x920 0x0000044e 0x920   0x0 -r-- class.methods                                        
0x0000044e  0x3d 0x0000044e  0x3d   0x0 -r-- class.methods._init_.attr                            
0x00000464  0x2f 0x00000464  0x2f   0x0 -r-x class.methods._init_.attr.0.code                     
0x0000048b 0x13e 0x0000048b 0x13e   0x0 -r-- class.methods.a.attr                                 
0x000004a1 0x130 0x000004a1 0x130   0x0 -r-x class.methods.a.attr.0.code                          
0x000005c9  0x44 0x000005c9  0x44   0x0 -r-- class.methods.a_1.attr                               
0x000005df  0x36 0x000005df  0x36   0x0 -r-x class.methods.a_1.attr.0.code                        
0x0000060d  0x3a 0x0000060d  0x3a   0x0 -r-- class.methods.a_1.attr_0x60d                         
0x00000623  0x2c 0x00000623  0x2c   0x0 -r-x class.methods.a_1.attr.0.code_0x623                  
0x00000647 0x1b9 0x00000647 0x1b9   0x0 -r-- class.methods.hopskip_line_switch.attr               
0x0000065d 0x1ab 0x0000065d 0x1ab   0x0 -r-x class.methods.hopskip_line_switch.attr.0.code        
0x00000800 0x1d4 0x00000800 0x1d4   0x0 -r-- class.methods.straight_line_switch.attr              
0x00000816 0x1c6 0x00000816 0x1c6   0x0 -r-x class.methods.straight_line_switch.attr.0.code       
0x000009d4 0x1cc 0x000009d4 0x1cc   0x0 -r-- class.methods.straight_line_switch_.attr             
0x000009ea 0x1be 0x000009ea 0x1be   0x0 -r-x class.methods.straight_line_switch_.attr.0.code      
0x00000ba0 0x1ce 0x00000ba0 0x1ce   0x0 -r-- class.methods.main.attr                              
0x00000bb6 0x1be 0x00000bb6 0x1be   0x0 -r-x class.methods.main.attr.0.code                       
0x00000d6e   0x8 0x00000d6e   0x8   0x0 -r-- class.attr                                           
EOF
RUN


NAME=Java list sections fuckedup.class
FILE=bins/java/fuckedup.class
CMDS=iS
EXPECT=<<EOF
     paddr size      vaddr vsize align perm name                type flags 
---------------------------------------------------------------------------
0x0000000a 0x41 0x0000000a  0x41   0x0 -r-- class.constant_pool      
EOF
RUN


NAME=Java list sections Hello.class
FILE=bins/java/Hello.class
CMDS=iS
EXPECT=<<EOF
     paddr  size      vaddr vsize align perm name                             type flags 
-----------------------------------------------------------------------------------------
0x0000000a 0x1ff 0x0000000a 0x1ff   0x0 -r-- class.constant_pool                   
0x0000020b   0xa 0x0000020b   0xa   0x0 -r-- class.fields.who.attr                 
0x0000020b   0xa 0x0000020b   0xa   0x0 -r-- class.fields                          
0x00000215  0xb8 0x00000215  0xb8   0x0 -r-- class.methods                         
0x00000215  0x38 0x00000215  0x38   0x0 -r-- class.methods._init_.attr             
0x0000022b  0x2a 0x0000022b  0x2a   0x0 -r-x class.methods._init_.attr.0.code      
0x0000024d  0x47 0x0000024d  0x47   0x0 -r-- class.methods.say.attr                
0x00000263  0x39 0x00000263  0x39   0x0 -r-x class.methods.say.attr.0.code         
0x00000294  0x39 0x00000294  0x39   0x0 -r-- class.methods.main.attr               
0x000002aa  0x29 0x000002aa  0x29   0x0 -r-x class.methods.main.attr.0.code        
0x000002cd   0x8 0x000002cd   0x8   0x0 -r-- class.attr                            
EOF
RUN


NAME=Java list sections HiKt.class
FILE=bins/java/HiKt.class
CMDS=iS
EXPECT=<<EOF
     paddr  size      vaddr vsize align perm name                           type flags 
---------------------------------------------------------------------------------------
0x0000000a 0x201 0x0000000a 0x201   0x0 -r-- class.constant_pool                 
0x0000020f  0x4e 0x0000020f  0x4e   0x0 -r-- class.methods                       
0x0000020f  0x4e 0x0000020f  0x4e   0x0 -r-- class.methods.main.attr             
0x00000225  0x31 0x00000225  0x31   0x0 -r-x class.methods.main.attr.0.code      
0x0000025d  0x54 0x0000025d  0x54   0x0 -r-- class.attr                          
EOF
RUN


NAME=Java list sections invisible.class
FILE=bins/java/invisible.class
CMDS=iS
EXPECT=<<EOF
     paddr  size      vaddr vsize align perm name                           type flags 
---------------------------------------------------------------------------------------
0x0000000a 0x100 0x0000000a 0x100   0x0 -r-- class.constant_pool                 
0x0000010e  0x21 0x0000010e  0x21   0x0 -r-- class.methods                       
0x0000010e  0x21 0x0000010e  0x21   0x0 -r-- class.methods.main.attr             
0x00000120  0x11 0x00000120  0x11   0x0 -r-x class.methods.main.attr.0.code      
EOF
RUN


NAME=Java list sections jdwpexeccmd.class
FILE=bins/java/jdwpexeccmd.class
CMDS=iS
EXPECT=<<EOF
     paddr  size      vaddr vsize align perm name                             type flags 
-----------------------------------------------------------------------------------------
0x0000000a 0x315 0x0000000a 0x315   0x0 -r-- class.constant_pool                   
0x00000323 0x124 0x00000323 0x124   0x0 -r-- class.methods                         
0x00000323  0x2b 0x00000323  0x2b   0x0 -r-- class.methods._init_.attr             
0x00000339  0x1d 0x00000339  0x1d   0x0 -r-x class.methods._init_.attr.0.code      
0x0000034e  0xf9 0x0000034e  0xf9   0x0 -r-- class.methods.run.attr                
0x00000364  0xe9 0x00000364  0xe9   0x0 -r-x class.methods.run.attr.0.code         
0x00000447   0x8 0x00000447   0x8   0x0 -r-- class.attr                            
EOF
RUN


NAME=Java list sections MainActivity.class
FILE=bins/java/MainActivity.class
CMDS=iS
EXPECT=<<EOF
     paddr   size      vaddr  vsize align perm name                                            type flags 
----------------------------------------------------------------------------------------------------------
0x0000000a 0x1c13 0x0000000a 0x1c13   0x0 -r-- class.constant_pool                                  
0x00001c1f    0x8 0x00001c1f    0x8   0x0 -r-- class.fields.outputView.attr                         
0x00001c27    0x8 0x00001c27    0x8   0x0 -r-- class.fields.handler.attr                            
0x00001c2f    0x8 0x00001c2f    0x8   0x0 -r-- class.fields.remoteRunButton.attr                    
0x00001c37    0x8 0x00001c37    0x8   0x0 -r-- class.fields.localRunButton.attr                     
0x00001c3f    0x8 0x00001c3f    0x8   0x0 -r-- class.fields.context.attr                            
0x00001c47    0x8 0x00001c47    0x8   0x0 -r-- class.fields.mUtils.attr                             
0x00001c4f    0x8 0x00001c4f    0x8   0x0 -r-- class.fields.http_url_default.attr                   
0x00001c57    0x8 0x00001c57    0x8   0x0 -r-- class.fields.onLocalRunButtonClick.attr              
0x00001c5f    0x8 0x00001c5f    0x8   0x0 -r-- class.fields.thread.attr                             
0x00001c67    0xa 0x00001c67    0xa   0x0 -r-- class.fields.onRemoteRunButtonClick.attr             
0x00001c1f   0x52 0x00001c1f   0x52   0x0 -r-- class.fields                                         
0x00001c71  0xd73 0x00001c71  0xd73   0x0 -r-- class.methods                                        
0x00001c71   0x7f 0x00001c71   0x7f   0x0 -r-- class.methods._init_.attr                            
0x00001c87   0x71 0x00001c87   0x71   0x0 -r-x class.methods._init_.attr.0.code                     
0x00001cf0  0x1fc 0x00001cf0  0x1fc   0x0 -r-- class.methods.onCreate.attr                          
0x00001d06  0x1ee 0x00001d06  0x1ee   0x0 -r-x class.methods.onCreate.attr.0.code                   
0x00001eec   0x58 0x00001eec   0x58   0x0 -r-- class.methods.onCreateOptionsMenu.attr               
0x00001f02   0x4a 0x00001f02   0x4a   0x0 -r-x class.methods.onCreateOptionsMenu.attr.0.code        
0x00001f44   0x9d 0x00001f44   0x9d   0x0 -r-- class.methods.onOptionsItemSelected.attr             
0x00001f5a   0x8f 0x00001f5a   0x8f   0x0 -r-x class.methods.onOptionsItemSelected.attr.0.code      
0x00001fe1   0x55 0x00001fe1   0x55   0x0 -r-- class.methods.checkForRadare.attr                    
0x00001ff7   0x47 0x00001ff7   0x47   0x0 -r-x class.methods.checkForRadare.attr.0.code             
0x00002036   0x68 0x00002036   0x68   0x0 -r-- class.methods.output.attr                            
0x0000204c   0x5a 0x0000204c   0x5a   0x0 -r-x class.methods.output.attr.0.code                     
0x0000209e  0x1a0 0x0000209e  0x1a0   0x0 -r-- class.methods.unTarGz.attr                           
0x000020b4  0x188 0x000020b4  0x188   0x0 -r-x class.methods.unTarGz.attr.0.code                    
0x0000223e   0x5d 0x0000223e   0x5d   0x0 -r-- class.methods.resetButtons.attr                      
0x00002254   0x4f 0x00002254   0x4f   0x0 -r-x class.methods.resetButtons.attr.0.code               
0x0000229b  0x335 0x0000229b  0x335   0x0 -r-- class.methods.download.attr                          
0x000022b1  0x327 0x000022b1  0x327   0x0 -r-x class.methods.download.attr.0.code                   
0x000025d0  0x13a 0x000025d0  0x13a   0x0 -r-- class.methods.onResume.attr                          
0x000025e6  0x12c 0x000025e6  0x12c   0x0 -r-x class.methods.onResume.attr.0.code                   
0x0000270a   0x3d 0x0000270a   0x3d   0x0 -r-- class.methods.access_000.attr                        
0x00002720   0x2f 0x00002720   0x2f   0x0 -r-x class.methods.access_000.attr.0.code                 
0x00002747   0x48 0x00002747   0x48   0x0 -r-- class.methods.access_100.attr                        
0x0000275d   0x3a 0x0000275d   0x3a   0x0 -r-x class.methods.access_100.attr.0.code                 
0x0000278f   0x3d 0x0000278f   0x3d   0x0 -r-- class.methods.access_200.attr                        
0x000027a5   0x2f 0x000027a5   0x2f   0x0 -r-x class.methods.access_200.attr.0.code                 
0x000027cc   0x3d 0x000027cc   0x3d   0x0 -r-- class.methods.access_300.attr                        
0x000027e2   0x2f 0x000027e2   0x2f   0x0 -r-x class.methods.access_300.attr.0.code                 
0x00002809   0x49 0x00002809   0x49   0x0 -r-- class.methods.access_402.attr                        
0x0000281f   0x3b 0x0000281f   0x3b   0x0 -r-x class.methods.access_402.attr.0.code                 
0x00002852   0x3d 0x00002852   0x3d   0x0 -r-- class.methods.access_400.attr                        
0x00002868   0x2f 0x00002868   0x2f   0x0 -r-x class.methods.access_400.attr.0.code                 
0x0000288f   0x3d 0x0000288f   0x3d   0x0 -r-- class.methods.access_500.attr                        
0x000028a5   0x2f 0x000028a5   0x2f   0x0 -r-x class.methods.access_500.attr.0.code                 
0x000028cc   0x3d 0x000028cc   0x3d   0x0 -r-- class.methods.access_600.attr                        
0x000028e2   0x2f 0x000028e2   0x2f   0x0 -r-x class.methods.access_600.attr.0.code                 
0x00002909   0x49 0x00002909   0x49   0x0 -r-- class.methods.access_602.attr                        
0x0000291f   0x3b 0x0000291f   0x3b   0x0 -r-x class.methods.access_602.attr.0.code                 
0x00002952   0x3d 0x00002952   0x3d   0x0 -r-- class.methods.access_700.attr                        
0x00002968   0x2f 0x00002968   0x2f   0x0 -r-x class.methods.access_700.attr.0.code                 
0x0000298f   0x55 0x0000298f   0x55   0x0 -r-- class.methods.access_800.attr                        
0x000029a5   0x45 0x000029a5   0x45   0x0 -r-x class.methods.access_800.attr.0.code                 
0x000029e4   0x50 0x000029e4   0x50   0x0 -r-- class.attr                                           
EOF
RUN


NAME=Java list sections Main.class
FILE=bins/java/Main.class
CMDS=iS
EXPECT=<<EOF
     paddr  size      vaddr vsize align perm name                             type flags 
-----------------------------------------------------------------------------------------
0x0000000a 0x365 0x0000000a 0x365   0x0 -r-- class.constant_pool                   
0x00000373 0x109 0x00000373 0x109   0x0 -r-- class.methods                         
0x00000373  0x2b 0x00000373  0x2b   0x0 -r-- class.methods._init_.attr             
0x00000389  0x1d 0x00000389  0x1d   0x0 -r-x class.methods._init_.attr.0.code      
0x0000039e  0xde 0x0000039e  0xde   0x0 -r-- class.methods.main.attr               
0x000003b4  0xce 0x000003b4  0xce   0x0 -r-x class.methods.main.attr.0.code        
0x0000047c   0x8 0x0000047c   0x8   0x0 -r-- class.attr                            
EOF
RUN


NAME=Java list sections sjybq.class
FILE=bins/java/sjybq.class
CMDS=iS
EXPECT=<<EOF
paddr size vaddr vsize align perm name type flags 
--------------------------------------------------
EOF
RUN


NAME=Java list sections test.class
FILE=bins/java/test.class
CMDS=iS
EXPECT=<<EOF
     paddr  size      vaddr vsize align perm name                                             type flags 
---------------------------------------------------------------------------------------------------------
0x0000000a 0x8bd 0x0000000a 0x8bd   0x0 -r-- class.constant_pool                                   
0x000008c9   0x8 0x000008c9   0x8   0x0 -r-- class.fields._staticClassInfo.attr                    
0x000008d1   0x8 0x000008d1   0x8   0x0 -r-- class.fields.___stMC.attr                             
0x000008d9   0xa 0x000008d9   0xa   0x0 -r-- class.fields._callSiteArray.attr                      
0x000008c9  0x1a 0x000008c9  0x1a   0x0 -r-- class.fields                                          
0x000008e3 0x2e4 0x000008e3 0x2e4   0x0 -r-- class.methods                                         
0x000008e3  0x35 0x000008e3  0x35   0x0 -r-- class.methods._init_.attr                             
0x000008f9  0x27 0x000008f9  0x27   0x0 -r-x class.methods._init_.attr.0.code                      
0x00000918  0x40 0x00000918  0x40   0x0 -r-- class.methods._init__1.attr                           
0x0000092e  0x32 0x0000092e  0x32   0x0 -r-x class.methods._init__1.attr.0.code                    
0x00000958  0x40 0x00000958  0x40   0x0 -r-- class.methods.main.attr                               
0x0000096e  0x32 0x0000096e  0x32   0x0 -r-x class.methods.main.attr.0.code                        
0x00000998 0x10c 0x00000998 0x10c   0x0 -r-- class.methods.run.attr                                
0x000009ae  0xfe 0x000009ae  0xfe   0x0 -r-x class.methods.run.attr.0.code                         
0x00000aa4  0x41 0x00000aa4  0x41   0x0 -r-- class.methods._getStaticMetaClass.attr                
0x00000aba  0x33 0x00000aba  0x33   0x0 -r-x class.methods._getStaticMetaClass.attr.0.code         
0x00000ae5  0x6f 0x00000ae5  0x6f   0x0 -r-- class.methods._createCallSiteArray_1.attr             
0x00000afb  0x61 0x00000afb  0x61   0x0 -r-x class.methods._createCallSiteArray_1.attr.0.code      
0x00000b54  0x2f 0x00000b54  0x2f   0x0 -r-- class.methods._createCallSiteArray.attr               
0x00000b6a  0x21 0x00000b6a  0x21   0x0 -r-x class.methods._createCallSiteArray.attr.0.code        
0x00000b83  0x44 0x00000b83  0x44   0x0 -r-- class.methods._getCallSiteArray.attr                  
0x00000b99  0x34 0x00000b99  0x34   0x0 -r-x class.methods._getCallSiteArray.attr.0.code           
0x00000bc7   0x8 0x00000bc7   0x8   0x0 -r-- class.attr                                            
EOF
RUN


NAME=Java list sections TryWithResources.class
FILE=bins/java/TryWithResources.class
CMDS=iS
EXPECT=<<EOF
     paddr   size      vaddr  vsize align perm name                                type flags 
----------------------------------------------------------------------------------------------
0x0000000a  0x3eb 0x0000000a  0x3eb   0x0 -r-- class.constant_pool                      
0x000003f5    0x4 0x000003f5    0x4   0x0 -r-- class.interfaces                         
0x000003f9    0x8 0x000003f9    0x8   0x0 -r-- class.fields._.attr                      
0x00000401    0xa 0x00000401    0xa   0x0 -r-- class.fields.i.attr                      
0x000003f9   0x12 0x000003f9   0x12   0x0 -r-- class.fields                             
0x0000040b 0x4b20 0x0000040b 0x4b20   0x0 -r-- class.methods                            
0x0000040b   0x23 0x0000040b   0x23   0x0 -r-- class.methods._.attr                     
0x00000421   0x15 0x00000421   0x15   0x0 -r-x class.methods._.attr.0.code              
0x0000042e   0x40 0x0000042e   0x40   0x0 -r-- class.methods._init_.attr                
0x00000444   0x32 0x00000444   0x32   0x0 -r-x class.methods._init_.attr.0.code         
0x0000046e   0x4c 0x0000046e   0x4c   0x0 -r-- class.methods.close.attr                 
0x00000484   0x3e 0x00000484   0x3e   0x0 -r-x class.methods.close.attr.0.code          
0x000004ba   0x2b 0x000004ba   0x2b   0x0 -r-- class.methods.__1.attr                   
0x000004d0   0x1d 0x000004d0   0x1d   0x0 -r-x class.methods.__1.attr.0.code            
0x000004e5   0x22 0x000004e5   0x22   0x0 -r-- class.methods.__1.attr_0x4e5             
0x000004fb   0x14 0x000004fb   0x14   0x0 -r-x class.methods.__1.attr.0.code_0x4fb      
0x00000507   0x2f 0x00000507   0x2f   0x0 -r-- class.methods.main.attr                  
0x0000051d   0x17 0x0000051d   0x17   0x0 -r-x class.methods.main.attr.0.code           
0x00000536 0x49cd 0x00000536 0x49cd   0x0 -r-- class.methods.main_1.attr                
0x0000054c 0x49bf 0x0000054c 0x49bf   0x0 -r-x class.methods.main_1.attr.0.code         
0x00004f03   0x28 0x00004f03   0x28   0x0 -r-- class.methods._clinit_.attr              
0x00004f19   0x18 0x00004f19   0x18   0x0 -r-x class.methods._clinit_.attr.0.code       
EOF
RUN

NAME=Java list exports HiKt.class
FILE=bins/java/HiKt.class
CMDS=iE
EXPECT=<<EOF
nth      paddr      vaddr bind   type size lib  name                
--------------------------------------------------------------------
  0 0x00000225 0x00000225 GLOBAL FUNC   49 HiKt void main(String[])
EOF
RUN


