1NAME=ELF: riscv64: entrypoint
2FILE=bins/elf/analysis/guess-number-riscv64
3CMDS=ie
4EXPECT=<<EOF
5[Entrypoints]
6vaddr=0x00010000 paddr=0x00001000 haddr=0x00000018 hvaddr=0x00010018 type=program
7
81 entrypoints
9EOF
10RUN
11
12NAME=ELF: riscv64: symbols
13FILE=bins/elf/analysis/guess-number-riscv64
14CMDS=is
15EXPECT=<<EOF
16[Symbols]
17
18nth paddr      vaddr      bind   type   size lib name
19-----------------------------------------------------
201   0x00001000 0x00010000 LOCAL  SECT   0        .text
212   0x000124f8 0x000214f8 LOCAL  SECT   0        .rodata
223   0x00013620 0x00022620 LOCAL  SECT   0        .init_array
234   0x00013628 0x00022628 LOCAL  SECT   0        .fini_array
245   0x00013630 0x00022630 LOCAL  SECT   0        .eh_frame
256   0x00015060 0x00024060 LOCAL  SECT   0        .jcr
267   0x00015070 0x00024070 LOCAL  SECT   0        .data
278   0x00016070 0x00025070 LOCAL  SECT   0        .sdata
289   ---------- 0x00025168 LOCAL  SECT   0        .sbss
2910  ---------- 0x00025198 LOCAL  SECT   0        .bss
3011  ---------- 0x00000000 LOCAL  SECT   0        .comment
3112  ---------- 0x00000000 LOCAL  SECT   0        .debug_info
3213  ---------- 0x00000000 LOCAL  SECT   0        .debug_abbrev
3314  ---------- 0x00000000 LOCAL  SECT   0        .debug_loc
3415  ---------- 0x00000000 LOCAL  SECT   0        .debug_aranges
3516  ---------- 0x00000000 LOCAL  SECT   0        .debug_line
3617  ---------- 0x00000000 LOCAL  SECT   0        .debug_str
3718  ---------- 0x00000000 LOCAL  SECT   0        .debug_ranges
3819  ---------- 0x00000000 LOCAL  FILE   0        crtstuff.c
3920  0x00013630 0x00022630 LOCAL  OBJ    0        __EH_FRAME_BEGIN__
4021  0x00015060 0x00024060 LOCAL  OBJ    0        __JCR_LIST__
4122  0x0000104c 0x0001004c LOCAL  FUNC   0        deregister_tm_clones
4223  0x00001080 0x00010080 LOCAL  FUNC   0        register_tm_clones
4324  0x000010c0 0x000100c0 LOCAL  FUNC   0        __do_global_dtors_aux
4425  ---------- 0x00025198 LOCAL  OBJ    1        completed.3084
4526  0x00013628 0x00022628 LOCAL  OBJ    0        __do_global_dtors_aux_fini_array_entry
4627  0x00001104 0x00010104 LOCAL  FUNC   0        frame_dummy
4728  ---------- 0x000251a0 LOCAL  OBJ    48       object.3089
4829  0x00013620 0x00022620 LOCAL  OBJ    0        __frame_dummy_init_array_entry
4930  ---------- 0x00000000 LOCAL  FILE   0        hello.c
5031  ---------- 0x00000000 LOCAL  FILE   0        crtstuff.c
5132  0x00013630 0x00022630 LOCAL  OBJ    0        __FRAME_END__
5233  0x00015060 0x00024060 LOCAL  OBJ    0        __JCR_END__
5334  ---------- 0x00000000 LOCAL  FILE   0        atexit.c
5435  ---------- 0x00000000 LOCAL  FILE   0        exit.c
5536  ---------- 0x00000000 LOCAL  FILE   0        fini.c
5637  ---------- 0x00000000 LOCAL  FILE   0        impure.c
5738  0x00015070 0x00024070 LOCAL  OBJ    1864     impure_data
5839  ---------- 0x00000000 LOCAL  FILE   0        init.c
5940  ---------- 0x00000000 LOCAL  FILE   0        printf.c
6041  ---------- 0x00000000 LOCAL  FILE   0        puts.c
6142  ---------- 0x00000000 LOCAL  FILE   0        scanf.c
6243  ---------- 0x00000000 LOCAL  FILE   0        strlen.c
6344  ---------- 0x00000000 LOCAL  FILE   0        vfprintf.c
6445  0x0000326c 0x0001226c LOCAL  FUNC   188      __sbprintf
6546  0x000126a8 0x000216a8 LOCAL  OBJ    16       blanks.4193
6647  0x000126b8 0x000216b8 LOCAL  OBJ    16       zeroes.4194
6748  ---------- 0x00000000 LOCAL  FILE   0        vfscanf.c
6849  0x00012b20 0x00021b20 LOCAL  OBJ    34       basefix.4147
6950  ---------- 0x00000000 LOCAL  FILE   0        wsetup.c
7051  ---------- 0x00000000 LOCAL  FILE   0        __atexit.c
7152  ---------- 0x00000000 LOCAL  FILE   0        __call_atexit.c
7253  ---------- 0x00000000 LOCAL  FILE   0        ctype_.c
7354  ---------- 0x00000000 LOCAL  FILE   0        dtoa.c
7455  0x00004958 0x00013958 LOCAL  FUNC   492      quorem
7556  ---------- 0x00000000 LOCAL  FILE   0        fflush.c
7657  ---------- 0x00000000 LOCAL  FILE   0        findfp.c
7758  0x00005ef8 0x00014ef8 LOCAL  FUNC   8        __fp_unlock
7859  0x00005f0c 0x00014f0c LOCAL  FUNC   396      __sinit.part.1
7960  0x0000609c 0x0001509c LOCAL  FUNC   8        __fp_lock
8061  ---------- 0x00000000 LOCAL  FILE   0        fread.c
8162  ---------- 0x00000000 LOCAL  FILE   0        mallocr.c
8263  ---------- 0x00000000 LOCAL  FILE   0        fvwrite.c
8364  ---------- 0x00000000 LOCAL  FILE   0        fwalk.c
8465  ---------- 0x00000000 LOCAL  FILE   0        iswspace.c
8566  ---------- 0x00000000 LOCAL  FILE   0        locale.c
8667  0x000157b8 0x000247b8 LOCAL  OBJ    32       lc_ctype_charset
8768  0x000157d8 0x000247d8 LOCAL  OBJ    32       lc_message_charset
8869  0x000157f8 0x000247f8 LOCAL  OBJ    96       lconv
8970  ---------- 0x00000000 LOCAL  FILE   0        makebuf.c
9071  ---------- 0x00000000 LOCAL  FILE   0        mallocr.c
9172  ---------- 0x00000000 LOCAL  FILE   0        mbrtowc.c
9273  ---------- 0x00000000 LOCAL  FILE   0        mbtowc_r.c
9374  ---------- 0x00000000 LOCAL  FILE   0        memchr.c
9475  ---------- 0x00000000 LOCAL  FILE   0        memcpy.c
9576  ---------- 0x00000000 LOCAL  FILE   0        memmove.c
9677  ---------- 0x00000000 LOCAL  FILE   0        mlock.c
9778  ---------- 0x00000000 LOCAL  FILE   0        mprec.c
9879  0x00012c50 0x00021c50 LOCAL  OBJ    12       p05.2568
9980  ---------- 0x00000000 LOCAL  FILE   0        mallocr.c
10081  ---------- 0x00000000 LOCAL  FILE   0        refill.c
10182  0x00009590 0x00018590 LOCAL  FUNC   28       lflush
10283  ---------- 0x00000000 LOCAL  FILE   0        sccl.c
10384  ---------- 0x00000000 LOCAL  FILE   0        sf_nan.c
10485  ---------- 0x00000000 LOCAL  FILE   0        s_fpclassify.c
10586  ---------- 0x00000000 LOCAL  FILE   0        sprintf.c
10687  ---------- 0x00000000 LOCAL  FILE   0        stdio.c
10788  ---------- 0x00000000 LOCAL  FILE   0        lib_a-strcmp.o
10889  0x000160b8 0x000250b8 LOCAL  NOTYPE 0        mask
10990  ---------- 0x00000000 LOCAL  FILE   0        strtod.c
11091  0x0001248c 0x0002148c LOCAL  FUNC   104      sulp
11192  0x00012e50 0x00021e50 LOCAL  OBJ    20       fpi.2617
11293  0x00012e68 0x00021e68 LOCAL  OBJ    20       fpinan.2653
11394  0x00012e80 0x00021e80 LOCAL  OBJ    40       tinytens
11495  ---------- 0x00000000 LOCAL  FILE   0        strtol.c
11596  ---------- 0x00000000 LOCAL  FILE   0        strtoul.c
11697  ---------- 0x00000000 LOCAL  FILE   0        vfprintf.c
11798  0x00013010 0x00022010 LOCAL  OBJ    16       blanks.4178
11899  0x00013020 0x00022020 LOCAL  OBJ    16       zeroes.4179
119100 ---------- 0x00000000 LOCAL  FILE   0        ungetc.c
120101 ---------- 0x00000000 LOCAL  FILE   0        vfprintf.c
121102 0x0000d244 0x0001c244 LOCAL  FUNC   236      __sprint_r.part.0
122103 0x0000e40c 0x0001d40c LOCAL  FUNC   188      __sbprintf
123104 0x00013198 0x00022198 LOCAL  OBJ    16       blanks.4136
124105 0x000131a8 0x000221a8 LOCAL  OBJ    16       zeroes.4137
125106 ---------- 0x00000000 LOCAL  FILE   0        mallocr.c
126107 ---------- 0x00000000 LOCAL  FILE   0        fclose.c
127108 ---------- 0x00000000 LOCAL  FILE   0        fputwc.c
128109 ---------- 0x00000000 LOCAL  FILE   0        gdtoa-gethex.c
129110 0x0000e8a0 0x0001d8a0 LOCAL  FUNC   244      rshift
130111 ---------- 0x00000000 LOCAL  FILE   0        gdtoa-hexnan.c
131112 ---------- 0x00000000 LOCAL  FILE   0        strncmp.c
132113 ---------- 0x00000000 LOCAL  FILE   0        vfprintf.c
133114 0x00013420 0x00022420 LOCAL  OBJ    16       blanks.4122
134115 0x00013430 0x00022430 LOCAL  OBJ    16       zeroes.4123
135116 ---------- 0x00000000 LOCAL  FILE   0        wbuf.c
136117 ---------- 0x00000000 LOCAL  FILE   0        wcrtomb.c
137118 ---------- 0x00000000 LOCAL  FILE   0        wctomb_r.c
138119 ---------- 0x00000000 LOCAL  FILE   0        syscalls.c
139120 ---------- 0x00025190 LOCAL  OBJ    8        heap_end.2381
140121 ---------- 0x000251f8 LOCAL  OBJ    16       t0.2343
141122 ---------- 0x00000000 LOCAL  FILE   0        dp-bit.c
142123 0x00010b9c 0x0001fb9c LOCAL  FUNC   496      _fpadd_parts
143124 ---------- 0x00000000 LOCAL  FILE   0        libgcc2.c
144125 ---------- 0x00000000 LOCAL  FILE   0        fp-bit.c
145126 0x00011858 0x00020858 LOCAL  FUNC   444      _fpadd_parts
146127 ---------- 0x00000000 LOCAL  FILE   0        libgcc2.c
147128 ---------- 0x00000000 LOCAL  FILE   0        errno.c
148129 ---------- 0x00000000 LOCAL  FILE   0
149130 0x00013630 0x00022630 LOCAL  NOTYPE 0        __fini_array_end
150131 0x00013628 0x00022628 LOCAL  NOTYPE 0        __fini_array_start
151132 0x00013628 0x00022628 LOCAL  NOTYPE 0        __init_array_end
152133 0x00013620 0x00022620 LOCAL  NOTYPE 0        __preinit_array_end
153134 0x00013620 0x00022620 LOCAL  NOTYPE 0        __init_array_start
154135 0x00013620 0x00022620 LOCAL  NOTYPE 0        __preinit_array_start
155136 0x00008ef4 0x00017ef4 GLOBAL FUNC   56       _mprec_log10
156137 0x00008f94 0x00017f94 GLOBAL FUNC   132      __any_on
157138 0x00012d28 0x00021d28 GLOBAL OBJ    40       __mprec_tinytens
158139 0x000013c4 0x000103c4 GLOBAL FUNC   176      _puts_r
159140 0x00011468 0x00020468 GLOBAL FUNC   64       __cmpdf2
160141 0x00011564 0x00020564 GLOBAL FUNC   4        __eqdf2
161142 0x000108b8 0x0001f8b8 GLOBAL FUNC   20       fstatat
162143 0x00010b14 0x0001fb14 GLOBAL FUNC   28       sysconf
163144 0x00001374 0x00010374 GLOBAL FUNC   80       printf
164145 0x00015070 0x00024070 GLOBAL NOTYPE 0        _fdata
165146 0x00010aec 0x0001faec GLOBAL FUNC   8        utime
166147 0x000105e4 0x0001f5e4 GLOBAL FUNC   164      _wcrtomb_r
167148 0x00009b08 0x00018b08 GLOBAL FUNC   104      __sseek
168149 0x00006228 0x00015228 GLOBAL FUNC   16       __sinit
169150 0x0001045c 0x0001f45c GLOBAL FUNC   376      __swbuf_r
170151 0x00006f4c 0x00015f4c GLOBAL FUNC   120      _setlocale_r
171152 0x000060a4 0x000150a4 GLOBAL FUNC   108      __sfmoreglue
172153 0x0000d234 0x0001c234 GLOBAL FUNC   16       ungetc
173154 0x00007fac 0x00016fac GLOBAL FUNC   4        __malloc_unlock
174155 0x00009ca8 0x00018ca8 GLOBAL FUNC   4756     _strtod_r
175156 0x00011e8c 0x00020e8c GLOBAL FUNC   300      __divsf3
176157 0x00007dac 0x00016dac GLOBAL FUNC   288      memmove
177158 0x00006218 0x00015218 GLOBAL FUNC   16       _cleanup
178159 0x00007fb0 0x00016fb0 GLOBAL FUNC   172      _Balloc
179160 0x00012358 0x00021358 GLOBAL FUNC   140      __fixsfsi
180161 0x000108e8 0x0001f8e8 GLOBAL FUNC   20       faccessat
181162 0x00011500 0x00020500 GLOBAL FUNC   4        __gtdf2
182163 0x00012484 0x00021484 GLOBAL FUNC   8        __errno
183164 0x00010a2c 0x0001fa2c GLOBAL FUNC   144      times
184165 0x00011780 0x00020780 GLOBAL FUNC   44       __make_dp
185166 0x00004508 0x00013508 GLOBAL FUNC   20       __svfscanf
186167 0x00009a90 0x00018a90 GLOBAL FUNC   8        __seofread
187168 0x00013620 0x00022620 GLOBAL NOTYPE 0        _etext
188169 0x0001241c 0x0002141c GLOBAL FUNC   44       __make_fp
189170 ---------- 0x00025870 GLOBAL NOTYPE 0        _gp
190171 0x00011c94 0x00020c94 GLOBAL FUNC   84       __subsf3
191172 0x00010958 0x0001f958 GLOBAL FUNC   36       execve
192173 0x000109a0 0x0001f9a0 GLOBAL FUNC   8        getpid
193174 0x00007c8c 0x00016c8c GLOBAL FUNC   288      memcpy
194175 0x0000f124 0x0001e124 GLOBAL FUNC   616      __hexnan
195176 0x00016068 0x00025068 GLOBAL OBJ    0        __TMC_END__
196177 0x00005f00 0x00014f00 GLOBAL FUNC   12       _cleanup_r
197178 0x0000b384 0x0001a384 GLOBAL FUNC   7156     _svfprintf_r
198179 0x000115b4 0x000205b4 GLOBAL FUNC   132      __floatsidf
199180 0x0001155c 0x0002055c GLOBAL FUNC   4        __ltdf2
200181 0x00001474 0x00010474 GLOBAL FUNC   12       puts
201182 0x00007a38 0x00016a38 GLOBAL FUNC   208      mbrtowc
202183 0x000098bc 0x000188bc GLOBAL FUNC   132      __fpclassifyd
203184 0x0000451c 0x0001351c GLOBAL FUNC   76       _vfscanf_r
204185 0x00008e30 0x00017e30 GLOBAL FUNC   196      __ratio
205187 0x00001330 0x00010330 GLOBAL FUNC   68       _printf_r
206188 0x000109f0 0x0001f9f0 GLOBAL FUNC   60       isatty
207189 0x00006f1c 0x00015f1c GLOBAL FUNC   48       iswspace
208190 0x00012c60 0x00021c60 GLOBAL OBJ    200      __mprec_tens
209191 0x00006fc4 0x00015fc4 GLOBAL FUNC   12       __locale_charset
210192 0x00012128 0x00021128 GLOBAL FUNC   84       __lesf2
211193 ---------- 0x00025198 GLOBAL NOTYPE 0        _bss_start
212194 ---------- 0x00025188 GLOBAL OBJ    8        __malloc_top_pad
213195 0x0000b370 0x0001a370 GLOBAL FUNC   20       strtoul
214196 0x00016070 0x00025070 GLOBAL OBJ    0        __dso_handle
215197 0x00016090 0x00025090 GLOBAL OBJ    4        __mb_cur_max
216198 0x00006fec 0x00015fec GLOBAL FUNC   12       _localeconv_r
217199 0x000083e8 0x000173e8 GLOBAL FUNC   52       __i2b
218200 0x000068f8 0x000158f8 GLOBAL FUNC   1204     __sfvwrite_r
219201 0x00010ed8 0x0001fed8 GLOBAL FUNC   228      __unpack_d
220202 0x0000e580 0x0001d580 GLOBAL FUNC   260      _fclose_r
221203 0x00005ed8 0x00014ed8 GLOBAL FUNC   32       fflush
222204 ---------- 0x00025180 GLOBAL OBJ    8        __malloc_max_sbrked_mem
223205 0x00012448 0x00021448 GLOBAL FUNC   60       __extendsfdf2
224206 0x00010fbc 0x0001ffbc GLOBAL FUNC   72       __adddf3
225207 0x00012184 0x00021184 GLOBAL FUNC   4        __nesf2
226208 0x00008ba0 0x00017ba0 GLOBAL FUNC   336      __b2d
227209 0x00010828 0x0001f828 GLOBAL FUNC   20       lseek
228210 0x00016078 0x00025078 GLOBAL OBJ    8        _global_impure_ptr
229211 0x00010af4 0x0001faf4 GLOBAL FUNC   8        chown
230212 0x00009018 0x00018018 GLOBAL FUNC   1400     _realloc_r
231213 0x00001290 0x00010290 GLOBAL FUNC   160      __libc_init_array
232214 0x000131b8 0x000221b8 GLOBAL OBJ    256      __hexdig
233215 0x0000e7fc 0x0001d7fc GLOBAL FUNC   40       _fputwc_r
234216 0x00012d50 0x00021d50 GLOBAL OBJ    40       __mprec_bigtens
235217 0x00008190 0x00017190 GLOBAL FUNC   300      __s2b
236218 0x00011638 0x00020638 GLOBAL FUNC   124      __floatunsidf
237219 0x000088a8 0x000178a8 GLOBAL FUNC   96       __mcmp
238220 0x00010afc 0x0001fafc GLOBAL FUNC   8        chmod
239221 0x00006248 0x00015248 GLOBAL FUNC   16       __fp_lock_all
240222 0x00001048 0x00010048 GLOBAL NOTYPE 0        _init
241223 0x0000b178 0x0001a178 GLOBAL FUNC   20       strtol
242224 0x00001234 0x00010234 GLOBAL FUNC   92       __libc_fini_array
243225 0x00011b74 0x00020b74 GLOBAL FUNC   216      __unpack_f
244226 0x000082bc 0x000172bc GLOBAL FUNC   124      __hi0bits
245227 0x000116b4 0x000206b4 GLOBAL FUNC   148      __fixdfsi
246228 0x0000af3c 0x00019f3c GLOBAL FUNC   16       strtod
247229 0x00010850 0x0001f850 GLOBAL FUNC   20       write
248230 0x00012124 0x00021124 GLOBAL FUNC   4        __gtsf2
249231 0x00010864 0x0001f864 GLOBAL FUNC   28       fstat
250232 0x000109a8 0x0001f9a8 GLOBAL FUNC   36       kill
251233 0x00011504 0x00020504 GLOBAL FUNC   84       __ledf2
252234 0x00008610 0x00017610 GLOBAL FUNC   312      __pow5mult
253235 ---------- 0x00025174 GLOBAL OBJ    4        __nlocale_changed
254236 0x000014d0 0x000104d0 GLOBAL FUNC   68       _scanf_r
255238 0x00010b04 0x0001fb04 GLOBAL FUNC   8        chdir
256239 0x00011a14 0x00020a14 GLOBAL FUNC   352      __pack_f
257241 0x00006238 0x00015238 GLOBAL FUNC   0        __sfp_lock_acquire
258242 0x00007bac 0x00016bac GLOBAL FUNC   224      memchr
259243 0x00009940 0x00018940 GLOBAL FUNC   112      _sprintf_r
260244 0x000065ec 0x000155ec GLOBAL FUNC   780      _free_r
261245 0x000109cc 0x0001f9cc GLOBAL FUNC   36       wait
262246 0x00006fd0 0x00015fd0 GLOBAL FUNC   8        __locale_mb_cur_max
263247 0x000047cc 0x000137cc GLOBAL FUNC   396      __call_exitprocs
264248 ---------- 0x00025170 GLOBAL OBJ    4        __mlocale_changed
265249 0x00001000 0x00010000 GLOBAL NOTYPE 0        _ftext
266250 0x00016098 0x00025098 GLOBAL OBJ    8        __malloc_sbrk_base
267251 0x00001000 0x00010000 GLOBAL NOTYPE 0        _start
268252 0x0001089c 0x0001f89c GLOBAL FUNC   28       lstat
269253 0x00008748 0x00017748 GLOBAL FUNC   352      __lshift
270254 0x0001083c 0x0001f83c GLOBAL FUNC   20       read
271255 0x000121d8 0x000211d8 GLOBAL FUNC   172      __floatsisf
272256 0x0000f45c 0x0001e45c GLOBAL FUNC   504      __ssprint_r
273257 0x000046cc 0x000136cc GLOBAL FUNC   256      __register_exitproc
274258 0x0000f38c 0x0001e38c GLOBAL FUNC   208      strncmp
275259 0x0000841c 0x0001741c GLOBAL FUNC   500      __multiply
276260 0x00010938 0x0001f938 GLOBAL FUNC   32       unlink
277261 ---------- 0x000251d0 GLOBAL OBJ    40       __malloc_current_mallinfo
278262 0x00012188 0x00021188 GLOBAL FUNC   4        __eqsf2
279263 0x00008cf0 0x00017cf0 GLOBAL FUNC   320      __d2b
280264 0x0000b18c 0x0001a18c GLOBAL FUNC   484      _strtoul_r
281265 0x00011394 0x00020394 GLOBAL FUNC   212      __fpcmp_parts_d
282266 0x00011748 0x00020748 GLOBAL FUNC   56       __negdf2
283267 0x0001097c 0x0001f97c GLOBAL FUNC   36       fork
284268 0x00004568 0x00013568 GLOBAL FUNC   356      __swsetup_r
285269 0x00011260 0x00020260 GLOBAL FUNC   308      __divdf3
286270 0x000123e4 0x000213e4 GLOBAL FUNC   56       __negsf2
287271 0x00006110 0x00015110 GLOBAL FUNC   264      __sfp
288272 0x00008f2c 0x00017f2c GLOBAL FUNC   104      __copybits
289273 0x00015858 0x00024858 GLOBAL OBJ    2064     __malloc_av_
290274 0x00006244 0x00015244 GLOBAL FUNC   4        __sinit_lock_release
291275 0x00011058 0x00020058 GLOBAL FUNC   520      __muldf3
292276 0x00009a2c 0x00018a2c GLOBAL FUNC   100      __sread
293277 0x00013458 0x00022458 GLOBAL OBJ    16       __thenan_sf
294278 0x000064bc 0x000154bc GLOBAL FUNC   24       fread
295279 0x000107cc 0x0001f7cc GLOBAL FUNC   48       __syscall_error
296280 0x00007fa8 0x00016fa8 GLOBAL FUNC   4        __malloc_lock
297282 0x00010b30 0x0001fb30 GLOBAL FUNC   80       sbrk
298283 0x00005e7c 0x00014e7c GLOBAL FUNC   92       _fflush_r
299284 0x0000e4cc 0x0001d4cc GLOBAL FUNC   180      _calloc_r
300285 0x0001208c 0x0002108c GLOBAL FUNC   64       __cmpsf2
301286 0x00010abc 0x0001fabc GLOBAL FUNC   32       gettimeofday
302287 0x00007ecc 0x00016ecc GLOBAL NOTYPE 0        memset
303288 0x00001150 0x00010150 GLOBAL FUNC   160      main
304289 ---------- 0x00025178 GLOBAL OBJ    8        __malloc_max_total_mem
305290 0x000105d4 0x0001f5d4 GLOBAL FUNC   16       __swbuf
306291 0x00012180 0x00021180 GLOBAL FUNC   4        __ltsf2
307292 0x00006268 0x00015268 GLOBAL FUNC   596      _fread_r
308293 0x00009b74 0x00018b74 GLOBAL FUNC   8        __sclose
309294 0x0000e684 0x0001d684 GLOBAL FUNC   12       fclose
310295 0x000117ac 0x000207ac GLOBAL FUNC   76       __truncdfsf2
311296 0x0000af9c 0x00019f9c GLOBAL FUNC   476      _strtol_r
312297 0x00004b44 0x00013b44 GLOBAL FUNC   4300     _dtoa_r
313298 0x000071c0 0x000161c0 GLOBAL FUNC   1988     _malloc_r
314299 0x00010740 0x0001f740 GLOBAL FUNC   48       __ascii_wctomb
315300 0x0000cf78 0x0001bf78 GLOBAL FUNC   240      __submore
316301 0x00006dac 0x00015dac GLOBAL FUNC   176      _fwalk
317302 0x00007b48 0x00016b48 GLOBAL FUNC   100      _mbtowc_r
318303 0x00013440 0x00022440 GLOBAL OBJ    24       __thenan_df
319304 0x000064d4 0x000154d4 GLOBAL FUNC   280      _malloc_trim_r
320305 0x00011ce8 0x00020ce8 GLOBAL FUNC   420      __mulsf3
321306 0x00009b7c 0x00018b7c GLOBAL NOTYPE 0        strcmp
322307 0x0000e3f8 0x0001d3f8 GLOBAL FUNC   20       vfiprintf
323308 0x00010b0c 0x0001fb0c GLOBAL FUNC   8        getcwd
324309 0x00011560 0x00020560 GLOBAL FUNC   4        __nedf2
325310 0x00001048 0x00010048 GLOBAL NOTYPE 0        _fini
326311 0x000099b0 0x000189b0 GLOBAL FUNC   124      sprintf
327312 0x00013468 0x00022468 GLOBAL OBJ    256      __clz_tab
328313 ---------- 0x00025168 GLOBAL OBJ    8        _PathLocale
329314 0x0000af4c 0x00019f4c GLOBAL FUNC   80       strtof
330315 0x000011f0 0x000101f0 GLOBAL FUNC   20       atexit
331316 0x000120cc 0x000210cc GLOBAL FUNC   88       __gesf2
332317 0x00006ff8 0x00015ff8 GLOBAL FUNC   16       setlocale
333318 0x00001480 0x00010480 GLOBAL FUNC   80       scanf
334319 0x000098b4 0x000188b4 GLOBAL FUNC   8        nanf
335320 0x00016080 0x00025080 GLOBAL OBJ    8        _impure_ptr
336321 0x00005c10 0x00014c10 GLOBAL FUNC   620      __sflush_r
337322 0x00007984 0x00016984 GLOBAL FUNC   180      _mbrtowc_r
338323 0x00006fe4 0x00015fe4 GLOBAL FUNC   8        __locale_cjk_lang
339324 0x0000f654 0x0001e654 GLOBAL FUNC   3592     _svfiprintf_r
340325 0x000095ac 0x000185ac GLOBAL FUNC   588      __srefill_r
341326 0x00007b08 0x00016b08 GLOBAL FUNC   64       __ascii_mbtowc
342327 0x00008b10 0x00017b10 GLOBAL FUNC   144      __ulp
343328 0x00006258 0x00015258 GLOBAL FUNC   16       __fp_unlock_all
344329 0x00007008 0x00016008 GLOBAL FUNC   8        localeconv
345330 0x00010adc 0x0001fadc GLOBAL FUNC   16       ftime
346331 0x00010880 0x0001f880 GLOBAL FUNC   28       stat
347332 0x000108cc 0x0001f8cc GLOBAL FUNC   28       access
348333 0x00016068 0x00025068 GLOBAL NOTYPE 0        _edata
349334 ---------- 0x00025208 GLOBAL NOTYPE 0        _end
350335 0x0001218c 0x0002118c GLOBAL FUNC   72       __unordsf2
351336 0x0000e690 0x0001d690 GLOBAL FUNC   364      __fputwc
352337 0x000044a8 0x000134a8 GLOBAL FUNC   96       vfscanf
353338 0x00009a98 0x00018a98 GLOBAL FUNC   112      __swrite
354339 0x000160a0 0x000250a0 GLOBAL OBJ    8        __malloc_trim_threshold
355340 0x0001091c 0x0001f91c GLOBAL FUNC   28       link
356341 0x00006fd8 0x00015fd8 GLOBAL FUNC   12       __locale_msgcharset
357342 0x00001204 0x00010204 GLOBAL FUNC   48       exit
358343 0x0000d348 0x0001c348 GLOBAL FUNC   4272     _vfiprintf_r
359344 0x00006e5c 0x00015e5c GLOBAL FUNC   192      _fwalk_reent
360345 0x00012284 0x00021284 GLOBAL FUNC   212      __floatunsisf
361346 0x00008908 0x00017908 GLOBAL FUNC   520      __mdiff
362347 0x00016088 0x00025088 GLOBAL OBJ    8        __ctype_ptr__
363348 0x0000623c 0x0001523c GLOBAL FUNC   4        __sfp_lock_release
364349 0x000097fc 0x000187fc GLOBAL FUNC   184      __sccl
365350 0x00012b48 0x00021b48 GLOBAL OBJ    257      _ctype_
366351 0x00010814 0x0001f814 GLOBAL FUNC   20       openat
367352 0x00011568 0x00020568 GLOBAL FUNC   72       __unorddf2
368353 0x000160a8 0x000250a8 GLOBAL OBJ    8        __mbtowc
369354 0x00011fb8 0x00020fb8 GLOBAL FUNC   212      __fpcmp_parts_f
370355 0x00010b80 0x0001fb80 GLOBAL FUNC   28       _exit
371356 0x00007014 0x00016014 GLOBAL FUNC   428      __smakebuf_r
372357 0x00001514 0x00010514 GLOBAL FUNC   204      strlen
373358 0x000107fc 0x0001f7fc GLOBAL FUNC   24       open
374359 0x000114a8 0x000204a8 GLOBAL FUNC   88       __gedf2
375360 0x0000e994 0x0001d994 GLOBAL FUNC   1936     __gethex
376361 0x000160b0 0x000250b0 GLOBAL OBJ    8        __wctomb
377362 0x0000d330 0x0001c330 GLOBAL FUNC   24       __sprint_r
378363 0x00010770 0x0001f770 GLOBAL FUNC   92       _wctomb_r
379365 0x000117f8 0x000207f8 GLOBAL FUNC   96       __clzdi2
380366 0x00011004 0x00020004 GLOBAL FUNC   84       __subdf3
381367 0x000015e0 0x000105e0 GLOBAL FUNC   7288     _vfprintf_r
382368 0x00008338 0x00017338 GLOBAL FUNC   176      __lo0bits
383369 0x0000332c 0x0001232c GLOBAL FUNC   4476     __svfscanf_r
384370 ---------- 0x00025168 GLOBAL NOTYPE 0        _fbss
385371 0x0000d068 0x0001c068 GLOBAL FUNC   460      _ungetc_r
386373 0x00010688 0x0001f688 GLOBAL FUNC   184      wcrtomb
387374 0x000108fc 0x0001f8fc GLOBAL FUNC   32       close
388375 0x00011c4c 0x00020c4c GLOBAL FUNC   72       __addsf3
389376 0x00010d8c 0x0001fd8c GLOBAL FUNC   332      __pack_d
390377 0x00003258 0x00012258 GLOBAL FUNC   20       vfprintf
391378 0x0000e824 0x0001d824 GLOBAL FUNC   120      fputwc
392380 0x00006240 0x00015240 GLOBAL FUNC   4        __sinit_lock_acquire
393381 0x00008080 0x00017080 GLOBAL FUNC   272      __multadd
394382 0x0000805c 0x0001705c GLOBAL FUNC   36       _Bfree
395EOF
396RUN
397
398NAME=ELF: riscv64: file format
399FILE=bins/elf/analysis/guess-number-riscv64
400CMDS=if
401EXPECT=<<EOF
402fd       3
403file     bins/elf/analysis/guess-number-riscv64
404size     0x9d5a8
405humansz  629.4K
406mode     r-x
407format   elf64
408iorw     false
409block    0x100
410type     EXEC (Executable file)
411arch     riscv
412baddr    0x10000
413binsz    643108
414bintype  elf
415bits     64
416canary   false
417class    ELF64
418compiler GCC: (GNU) 5.2.0
419crypto   false
420endian   little
421havecode true
422laddr    0x0
423lang     c
424linenum  true
425lsyms    true
426machine  RISC V
427nx       false
428os       linux
429pic      false
430relocs   true
431rpath    NONE
432sanitiz  false
433static   true
434stripped false
435subsys   linux
436va       true
437EOF
438RUN
439
440NAME=ELF: riscv64: main analysis
441FILE=bins/elf/analysis/guess-number-riscv64
442CMDS=<<EOF
443e anal.vars.stackname=true
444e asm.calls=false
445s sym.main
446af
447pdf
448EOF
449EXPECT=<<EOF
450/ (fcn) main 160
451// int main (int argc, char **argv, char **envp);
452|           ; var int64_t var_18h @ s0-0x18
453|           ; var int64_t var_14h @ s0-0x14
454|           ; var int64_t var_10h @ sp+0x10
455|           ; var int64_t var_8h @ sp+0x18
456|           0x00010150      130101fe       addi sp, sp, -32
457|           0x00010154      233c1100       sd ra, 24(sp)
458|           0x00010158      23388100       sd s0, 16(sp)
459|           0x0001015c      13040102       addi s0, sp, 32
460|           0x00010160      9307b007       li a5, 123
461|           0x00010164      2326f4fe       sw a5, -20(s0)
462|           0x00010168      9307f0ff       li a5, -1
463|           0x0001016c      2324f4fe       sw a5, -24(s0)
464|      ..-> 0x00010170      b7170200       lui a5, 0x21
465|      ::   0x00010174      1385874f       addi a0, a5, 1272
466|      ::   0x00010178      ef00c01f       jal ra, sym.printf
467|      ::   0x0001017c      930784fe       addi a5, s0, -24
468|      ::   0x00010180      93850700       mv a1, a5
469|      ::   0x00010184      b7170200       lui a5, 0x21
470|      ::   0x00010188      13850751       addi a0, a5, 1296
471|      ::   0x0001018c      ef00402f       jal ra, sym.scanf
472|      ::   0x00010190      032784fe       lw a4, -24(s0)
473|      ::   0x00010194      8327c4fe       lw a5, -20(s0)
474|     ,===< 0x00010198      631cf700       bne a4, a5, 0x101b0
475|     |::   0x0001019c      b7170200       lui a5, 0x21
476|     |::   0x000101a0      13858751       addi a0, a5, 1304
477|     |::   0x000101a4      ef00002d       jal ra, sym.puts
478|     |::   0x000101a8      93070000       li a5, 0
479|    ,====< 0x000101ac      6f000003       j 0x101dc
480|    |`---> 0x000101b0      032784fe       lw a4, -24(s0)
481|    | ::   0x000101b4      8327c4fe       lw a5, -20(s0)
482|    |,===< 0x000101b8      635af700       ble a5, a4, 0x101cc
483|    ||::   0x000101bc      b7170200       lui a5, 0x21
484|    ||::   0x000101c0      13858752       addi a0, a5, 1320
485|    ||::   0x000101c4      ef00002b       jal ra, sym.puts
486|    ||`==< 0x000101c8      6ff09ffa       j 0x10170
487|    |`---> 0x000101cc      b7170200       lui a5, 0x21
488|    |  :   0x000101d0      13858753       addi a0, a5, 1336
489|    |  :   0x000101d4      ef00002a       jal ra, sym.puts
490|    |  `=< 0x000101d8      6ff09ff9       j 0x10170
491|    `----> 0x000101dc      13850700       mv a0, a5
492|           0x000101e0      83308101       ld ra, 24(sp)
493|           0x000101e4      03340101       ld s0, 16(sp)
494|           0x000101e8      13010102       addi sp, sp, 32
495\           0x000101ec      67800000       ret
496EOF
497RUN
498
499NAME=ELF: riscv64: full analysis
500FILE=bins/elf/analysis/guess-number-riscv64
501ARGS=-A
502CMDS=<<EOF
503e asm.calls=false
504s sym.main
505pdf
506EOF
507EXPECT=<<EOF
508            ; CALL XREF from entry0 @ 0x10040
509/ (fcn) main 160
510// int main (int argc, char **argv, char **envp);
511|           ; var int64_t var_bp_18h @ s0-0x18
512|           ; var int64_t var_14h @ s0-0x14
513|           ; var int64_t var_10h @ sp+0x10
514|           ; var int64_t var_18h @ sp+0x18
515|           0x00010150      130101fe       addi sp, sp, -32
516|           0x00010154      233c1100       sd ra, 24(sp)
517|           0x00010158      23388100       sd s0, 16(sp)
518|           0x0001015c      13040102       addi s0, sp, 32
519|           0x00010160      9307b007       li a5, 123
520|           0x00010164      2326f4fe       sw a5, -20(s0)
521|           0x00010168      9307f0ff       li a5, -1
522|           0x0001016c      2324f4fe       sw a5, -24(s0)
523|           ; CODE XREFS from main @ 0x101c8, 0x101d8
524|      ..-> 0x00010170      b7170200       lui a5, 0x21
525|      ::   0x00010174      1385874f       addi a0, a5, 1272           ; const char *format
526|      ::   0x00010178      ef00c01f       jal ra, dbg.printf
527|      ::   0x0001017c      930784fe       addi a5, s0, -24
528|      ::   0x00010180      93850700       mv a1, a5
529|      ::   0x00010184      b7170200       lui a5, 0x21
530|      ::   0x00010188      13850751       addi a0, a5, 1296           ; const char *format
531|      ::   0x0001018c      ef00402f       jal ra, dbg.scanf
532|      ::   0x00010190      032784fe       lw a4, -24(s0)
533|      ::   0x00010194      8327c4fe       lw a5, -20(s0)
534|     ,===< 0x00010198      631cf700       bne a4, a5, 0x101b0
535|     |::   0x0001019c      b7170200       lui a5, 0x21
536|     |::   0x000101a0      13858751       addi a0, a5, 1304           ; const char *s
537|     |::   0x000101a4      ef00002d       jal ra, dbg.puts
538|     |::   0x000101a8      93070000       li a5, 0
539|    ,====< 0x000101ac      6f000003       j 0x101dc
540|    ||::   ; CODE XREF from main @ 0x10198
541|    |`---> 0x000101b0      032784fe       lw a4, -24(s0)
542|    | ::   0x000101b4      8327c4fe       lw a5, -20(s0)
543|    |,===< 0x000101b8      635af700       ble a5, a4, 0x101cc
544|    ||::   0x000101bc      b7170200       lui a5, 0x21
545|    ||::   0x000101c0      13858752       addi a0, a5, 1320           ; const char *s
546|    ||::   0x000101c4      ef00002b       jal ra, dbg.puts
547|    ||`==< 0x000101c8      6ff09ffa       j 0x10170
548|    || :   ; CODE XREF from main @ 0x101b8
549|    |`---> 0x000101cc      b7170200       lui a5, 0x21
550|    |  :   0x000101d0      13858753       addi a0, a5, 1336           ; const char *s
551|    |  :   0x000101d4      ef00002a       jal ra, dbg.puts
552|    |  `=< 0x000101d8      6ff09ff9       j 0x10170
553|    |      ; CODE XREF from main @ 0x101ac
554|    `----> 0x000101dc      13850700       mv a0, a5
555|           0x000101e0      83308101       ld ra, 24(sp)
556|           0x000101e4      03340101       ld s0, 16(sp)
557|           0x000101e8      13010102       addi sp, sp, 32
558\           0x000101ec      67800000       ret
559EOF
560RUN
561