NAME=ELF: riscv64: entry points and symbols
FILE=bins/elf/analysis/guess-number-riscv64
CMDS=<<EOF
ie
echo ---
is
EOF
EXPECT=<<EOF
     vaddr      paddr     hvaddr      haddr type    
----------------------------------------------------
0x00010000 0x00001000 0x00010018 0x00000018 program
---
nth      paddr      vaddr bind   type   size lib name                                   
----------------------------------------------------------------------------------------
  1 0x00001000 0x00010000 LOCAL  SECT      0     .text
  2 0x000124f8 0x000214f8 LOCAL  SECT      0     .rodata
  3 0x00013620 0x00022620 LOCAL  SECT      0     .init_array
  4 0x00013628 0x00022628 LOCAL  SECT      0     .fini_array
  5 0x00013630 0x00022630 LOCAL  SECT      0     .eh_frame
  6 0x00015060 0x00024060 LOCAL  SECT      0     .jcr
  7 0x00015070 0x00024070 LOCAL  SECT      0     .data
  8 0x00016070 0x00025070 LOCAL  SECT      0     .sdata
  9 ---------- 0x00025168 LOCAL  SECT      0     .sbss
 10 ---------- 0x00025198 LOCAL  SECT      0     .bss
 11 ---------- 0x00000000 LOCAL  SECT      0     .comment
 12 ---------- 0x00000000 LOCAL  SECT      0     .debug_info
 13 ---------- 0x00000000 LOCAL  SECT      0     .debug_abbrev
 14 ---------- 0x00000000 LOCAL  SECT      0     .debug_loc
 15 ---------- 0x00000000 LOCAL  SECT      0     .debug_aranges
 16 ---------- 0x00000000 LOCAL  SECT      0     .debug_line
 17 ---------- 0x00000000 LOCAL  SECT      0     .debug_str
 18 ---------- 0x00000000 LOCAL  SECT      0     .debug_ranges
 19 ---------- 0x00000000 LOCAL  FILE      0     crtstuff.c
 20 0x00013630 0x00022630 LOCAL  OBJ       0     __EH_FRAME_BEGIN__
 21 0x00015060 0x00024060 LOCAL  OBJ       0     __JCR_LIST__
 22 0x0000104c 0x0001004c LOCAL  FUNC      0     deregister_tm_clones
 23 0x00001080 0x00010080 LOCAL  FUNC      0     register_tm_clones
 24 0x000010c0 0x000100c0 LOCAL  FUNC      0     __do_global_dtors_aux
 25 ---------- 0x00025198 LOCAL  OBJ       1     completed.3084
 26 0x00013628 0x00022628 LOCAL  OBJ       0     __do_global_dtors_aux_fini_array_entry
 27 0x00001104 0x00010104 LOCAL  FUNC      0     frame_dummy
 28 ---------- 0x000251a0 LOCAL  OBJ      48     object.3089
 29 0x00013620 0x00022620 LOCAL  OBJ       0     __frame_dummy_init_array_entry
 30 ---------- 0x00000000 LOCAL  FILE      0     hello.c
 31 ---------- 0x00000000 LOCAL  FILE      0     crtstuff.c
 32 0x00013630 0x00022630 LOCAL  OBJ       0     __FRAME_END__
 33 0x00015060 0x00024060 LOCAL  OBJ       0     __JCR_END__
 34 ---------- 0x00000000 LOCAL  FILE      0     atexit.c
 35 ---------- 0x00000000 LOCAL  FILE      0     exit.c
 36 ---------- 0x00000000 LOCAL  FILE      0     fini.c
 37 ---------- 0x00000000 LOCAL  FILE      0     impure.c
 38 0x00015070 0x00024070 LOCAL  OBJ    1864     impure_data
 39 ---------- 0x00000000 LOCAL  FILE      0     init.c
 40 ---------- 0x00000000 LOCAL  FILE      0     printf.c
 41 ---------- 0x00000000 LOCAL  FILE      0     puts.c
 42 ---------- 0x00000000 LOCAL  FILE      0     scanf.c
 43 ---------- 0x00000000 LOCAL  FILE      0     strlen.c
 44 ---------- 0x00000000 LOCAL  FILE      0     vfprintf.c
 45 0x0000326c 0x0001226c LOCAL  FUNC    188     __sbprintf
 46 0x000126a8 0x000216a8 LOCAL  OBJ      16     blanks.4193
 47 0x000126b8 0x000216b8 LOCAL  OBJ      16     zeroes.4194
 48 ---------- 0x00000000 LOCAL  FILE      0     vfscanf.c
 49 0x00012b20 0x00021b20 LOCAL  OBJ      34     basefix.4147
 50 ---------- 0x00000000 LOCAL  FILE      0     wsetup.c
 51 ---------- 0x00000000 LOCAL  FILE      0     __atexit.c
 52 ---------- 0x00000000 LOCAL  FILE      0     __call_atexit.c
 53 ---------- 0x00000000 LOCAL  FILE      0     ctype_.c
 54 ---------- 0x00000000 LOCAL  FILE      0     dtoa.c
 55 0x00004958 0x00013958 LOCAL  FUNC    492     quorem
 56 ---------- 0x00000000 LOCAL  FILE      0     fflush.c
 57 ---------- 0x00000000 LOCAL  FILE      0     findfp.c
 58 0x00005ef8 0x00014ef8 LOCAL  FUNC      8     __fp_unlock
 59 0x00005f0c 0x00014f0c LOCAL  FUNC    396     __sinit.part.1
 60 0x0000609c 0x0001509c LOCAL  FUNC      8     __fp_lock
 61 ---------- 0x00000000 LOCAL  FILE      0     fread.c
 62 ---------- 0x00000000 LOCAL  FILE      0     mallocr.c
 63 ---------- 0x00000000 LOCAL  FILE      0     fvwrite.c
 64 ---------- 0x00000000 LOCAL  FILE      0     fwalk.c
 65 ---------- 0x00000000 LOCAL  FILE      0     iswspace.c
 66 ---------- 0x00000000 LOCAL  FILE      0     locale.c
 67 0x000157b8 0x000247b8 LOCAL  OBJ      32     lc_ctype_charset
 68 0x000157d8 0x000247d8 LOCAL  OBJ      32     lc_message_charset
 69 0x000157f8 0x000247f8 LOCAL  OBJ      96     lconv
 70 ---------- 0x00000000 LOCAL  FILE      0     makebuf.c
 71 ---------- 0x00000000 LOCAL  FILE      0     mallocr.c
 72 ---------- 0x00000000 LOCAL  FILE      0     mbrtowc.c
 73 ---------- 0x00000000 LOCAL  FILE      0     mbtowc_r.c
 74 ---------- 0x00000000 LOCAL  FILE      0     memchr.c
 75 ---------- 0x00000000 LOCAL  FILE      0     memcpy.c
 76 ---------- 0x00000000 LOCAL  FILE      0     memmove.c
 77 ---------- 0x00000000 LOCAL  FILE      0     mlock.c
 78 ---------- 0x00000000 LOCAL  FILE      0     mprec.c
 79 0x00012c50 0x00021c50 LOCAL  OBJ      12     p05.2568
 80 ---------- 0x00000000 LOCAL  FILE      0     mallocr.c
 81 ---------- 0x00000000 LOCAL  FILE      0     refill.c
 82 0x00009590 0x00018590 LOCAL  FUNC     28     lflush
 83 ---------- 0x00000000 LOCAL  FILE      0     sccl.c
 84 ---------- 0x00000000 LOCAL  FILE      0     sf_nan.c
 85 ---------- 0x00000000 LOCAL  FILE      0     s_fpclassify.c
 86 ---------- 0x00000000 LOCAL  FILE      0     sprintf.c
 87 ---------- 0x00000000 LOCAL  FILE      0     stdio.c
 88 ---------- 0x00000000 LOCAL  FILE      0     lib_a-strcmp.o
 89 0x000160b8 0x000250b8 LOCAL  NOTYPE    0     mask
 90 ---------- 0x00000000 LOCAL  FILE      0     strtod.c
 91 0x0001248c 0x0002148c LOCAL  FUNC    104     sulp
 92 0x00012e50 0x00021e50 LOCAL  OBJ      20     fpi.2617
 93 0x00012e68 0x00021e68 LOCAL  OBJ      20     fpinan.2653
 94 0x00012e80 0x00021e80 LOCAL  OBJ      40     tinytens
 95 ---------- 0x00000000 LOCAL  FILE      0     strtol.c
 96 ---------- 0x00000000 LOCAL  FILE      0     strtoul.c
 97 ---------- 0x00000000 LOCAL  FILE      0     vfprintf.c
 98 0x00013010 0x00022010 LOCAL  OBJ      16     blanks.4178
 99 0x00013020 0x00022020 LOCAL  OBJ      16     zeroes.4179
100 ---------- 0x00000000 LOCAL  FILE      0     ungetc.c
101 ---------- 0x00000000 LOCAL  FILE      0     vfprintf.c
102 0x0000d244 0x0001c244 LOCAL  FUNC    236     __sprint_r.part.0
103 0x0000e40c 0x0001d40c LOCAL  FUNC    188     __sbprintf
104 0x00013198 0x00022198 LOCAL  OBJ      16     blanks.4136
105 0x000131a8 0x000221a8 LOCAL  OBJ      16     zeroes.4137
106 ---------- 0x00000000 LOCAL  FILE      0     mallocr.c
107 ---------- 0x00000000 LOCAL  FILE      0     fclose.c
108 ---------- 0x00000000 LOCAL  FILE      0     fputwc.c
109 ---------- 0x00000000 LOCAL  FILE      0     gdtoa-gethex.c
110 0x0000e8a0 0x0001d8a0 LOCAL  FUNC    244     rshift
111 ---------- 0x00000000 LOCAL  FILE      0     gdtoa-hexnan.c
112 ---------- 0x00000000 LOCAL  FILE      0     strncmp.c
113 ---------- 0x00000000 LOCAL  FILE      0     vfprintf.c
114 0x00013420 0x00022420 LOCAL  OBJ      16     blanks.4122
115 0x00013430 0x00022430 LOCAL  OBJ      16     zeroes.4123
116 ---------- 0x00000000 LOCAL  FILE      0     wbuf.c
117 ---------- 0x00000000 LOCAL  FILE      0     wcrtomb.c
118 ---------- 0x00000000 LOCAL  FILE      0     wctomb_r.c
119 ---------- 0x00000000 LOCAL  FILE      0     syscalls.c
120 ---------- 0x00025190 LOCAL  OBJ       8     heap_end.2381
121 ---------- 0x000251f8 LOCAL  OBJ      16     t0.2343
122 ---------- 0x00000000 LOCAL  FILE      0     dp-bit.c
123 0x00010b9c 0x0001fb9c LOCAL  FUNC    496     _fpadd_parts
124 ---------- 0x00000000 LOCAL  FILE      0     libgcc2.c
125 ---------- 0x00000000 LOCAL  FILE      0     fp-bit.c
126 0x00011858 0x00020858 LOCAL  FUNC    444     _fpadd_parts
127 ---------- 0x00000000 LOCAL  FILE      0     libgcc2.c
128 ---------- 0x00000000 LOCAL  FILE      0     errno.c
129 ---------- 0x00000000 LOCAL  FILE      0     unknown_129
130 0x00013630 0x00022630 LOCAL  NOTYPE    0     __fini_array_end
131 0x00013628 0x00022628 LOCAL  NOTYPE    0     __fini_array_start
132 0x00013628 0x00022628 LOCAL  NOTYPE    0     __init_array_end
133 0x00013620 0x00022620 LOCAL  NOTYPE    0     __preinit_array_end
134 0x00013620 0x00022620 LOCAL  NOTYPE    0     __init_array_start
135 0x00013620 0x00022620 LOCAL  NOTYPE    0     __preinit_array_start
136 0x00008ef4 0x00017ef4 GLOBAL FUNC     56     _mprec_log10
137 0x00008f94 0x00017f94 GLOBAL FUNC    132     __any_on
138 0x00012d28 0x00021d28 GLOBAL OBJ      40     __mprec_tinytens
139 0x000013c4 0x000103c4 GLOBAL FUNC    176     _puts_r
140 0x00011468 0x00020468 GLOBAL FUNC     64     __cmpdf2
141 0x00011564 0x00020564 GLOBAL FUNC      4     __eqdf2
142 0x000108b8 0x0001f8b8 GLOBAL FUNC     20     fstatat
143 0x00010b14 0x0001fb14 GLOBAL FUNC     28     sysconf
144 0x00001374 0x00010374 GLOBAL FUNC     80     printf
145 0x00015070 0x00024070 GLOBAL NOTYPE    0     _fdata
146 0x00010aec 0x0001faec GLOBAL FUNC      8     utime
147 0x000105e4 0x0001f5e4 GLOBAL FUNC    164     _wcrtomb_r
148 0x00009b08 0x00018b08 GLOBAL FUNC    104     __sseek
149 0x00006228 0x00015228 GLOBAL FUNC     16     __sinit
150 0x0001045c 0x0001f45c GLOBAL FUNC    376     __swbuf_r
151 0x00006f4c 0x00015f4c GLOBAL FUNC    120     _setlocale_r
152 0x000060a4 0x000150a4 GLOBAL FUNC    108     __sfmoreglue
153 0x0000d234 0x0001c234 GLOBAL FUNC     16     ungetc
154 0x00007fac 0x00016fac GLOBAL FUNC      4     __malloc_unlock
155 0x00009ca8 0x00018ca8 GLOBAL FUNC   4756     _strtod_r
156 0x00011e8c 0x00020e8c GLOBAL FUNC    300     __divsf3
157 0x00007dac 0x00016dac GLOBAL FUNC    288     memmove
158 0x00006218 0x00015218 GLOBAL FUNC     16     _cleanup
159 0x00007fb0 0x00016fb0 GLOBAL FUNC    172     _Balloc
160 0x00012358 0x00021358 GLOBAL FUNC    140     __fixsfsi
161 0x000108e8 0x0001f8e8 GLOBAL FUNC     20     faccessat
162 0x00011500 0x00020500 GLOBAL FUNC      4     __gtdf2
163 0x00012484 0x00021484 GLOBAL FUNC      8     __errno
164 0x00010a2c 0x0001fa2c GLOBAL FUNC    144     times
165 0x00011780 0x00020780 GLOBAL FUNC     44     __make_dp
166 0x00004508 0x00013508 GLOBAL FUNC     20     __svfscanf
167 0x00009a90 0x00018a90 GLOBAL FUNC      8     __seofread
168 0x00013620 0x00022620 GLOBAL NOTYPE    0     _etext
169 0x0001241c 0x0002141c GLOBAL FUNC     44     __make_fp
170 ---------- 0x00025870 GLOBAL NOTYPE    0     _gp
171 0x00011c94 0x00020c94 GLOBAL FUNC     84     __subsf3
172 0x00010958 0x0001f958 GLOBAL FUNC     36     execve
173 0x000109a0 0x0001f9a0 GLOBAL FUNC      8     getpid
174 0x00007c8c 0x00016c8c GLOBAL FUNC    288     memcpy
175 0x0000f124 0x0001e124 GLOBAL FUNC    616     __hexnan
176 0x00016068 0x00025068 GLOBAL OBJ       0     __TMC_END__
177 0x00005f00 0x00014f00 GLOBAL FUNC     12     _cleanup_r
178 0x0000b384 0x0001a384 GLOBAL FUNC   7156     _svfprintf_r
179 0x000115b4 0x000205b4 GLOBAL FUNC    132     __floatsidf
180 0x0001155c 0x0002055c GLOBAL FUNC      4     __ltdf2
181 0x00001474 0x00010474 GLOBAL FUNC     12     puts
182 0x00007a38 0x00016a38 GLOBAL FUNC    208     mbrtowc
183 0x000098bc 0x000188bc GLOBAL FUNC    132     __fpclassifyd
184 0x0000451c 0x0001351c GLOBAL FUNC     76     _vfscanf_r
185 0x00008e30 0x00017e30 GLOBAL FUNC    196     __ratio
187 0x00001330 0x00010330 GLOBAL FUNC     68     _printf_r
188 0x000109f0 0x0001f9f0 GLOBAL FUNC     60     isatty
189 0x00006f1c 0x00015f1c GLOBAL FUNC     48     iswspace
190 0x00012c60 0x00021c60 GLOBAL OBJ     200     __mprec_tens
191 0x00006fc4 0x00015fc4 GLOBAL FUNC     12     __locale_charset
192 0x00012128 0x00021128 GLOBAL FUNC     84     __lesf2
193 ---------- 0x00025198 GLOBAL NOTYPE    0     _bss_start
194 ---------- 0x00025188 GLOBAL OBJ       8     __malloc_top_pad
195 0x0000b370 0x0001a370 GLOBAL FUNC     20     strtoul
196 0x00016070 0x00025070 GLOBAL OBJ       0     __dso_handle
197 0x00016090 0x00025090 GLOBAL OBJ       4     __mb_cur_max
198 0x00006fec 0x00015fec GLOBAL FUNC     12     _localeconv_r
199 0x000083e8 0x000173e8 GLOBAL FUNC     52     __i2b
200 0x000068f8 0x000158f8 GLOBAL FUNC   1204     __sfvwrite_r
201 0x00010ed8 0x0001fed8 GLOBAL FUNC    228     __unpack_d
202 0x0000e580 0x0001d580 GLOBAL FUNC    260     _fclose_r
203 0x00005ed8 0x00014ed8 GLOBAL FUNC     32     fflush
204 ---------- 0x00025180 GLOBAL OBJ       8     __malloc_max_sbrked_mem
205 0x00012448 0x00021448 GLOBAL FUNC     60     __extendsfdf2
206 0x00010fbc 0x0001ffbc GLOBAL FUNC     72     __adddf3
207 0x00012184 0x00021184 GLOBAL FUNC      4     __nesf2
208 0x00008ba0 0x00017ba0 GLOBAL FUNC    336     __b2d
209 0x00010828 0x0001f828 GLOBAL FUNC     20     lseek
210 0x00016078 0x00025078 GLOBAL OBJ       8     _global_impure_ptr
211 0x00010af4 0x0001faf4 GLOBAL FUNC      8     chown
212 0x00009018 0x00018018 GLOBAL FUNC   1400     _realloc_r
213 0x00001290 0x00010290 GLOBAL FUNC    160     __libc_init_array
214 0x000131b8 0x000221b8 GLOBAL OBJ     256     __hexdig
215 0x0000e7fc 0x0001d7fc GLOBAL FUNC     40     _fputwc_r
216 0x00012d50 0x00021d50 GLOBAL OBJ      40     __mprec_bigtens
217 0x00008190 0x00017190 GLOBAL FUNC    300     __s2b
218 0x00011638 0x00020638 GLOBAL FUNC    124     __floatunsidf
219 0x000088a8 0x000178a8 GLOBAL FUNC     96     __mcmp
220 0x00010afc 0x0001fafc GLOBAL FUNC      8     chmod
221 0x00006248 0x00015248 GLOBAL FUNC     16     __fp_lock_all
222 0x00001048 0x00010048 GLOBAL NOTYPE    0     _init
223 0x0000b178 0x0001a178 GLOBAL FUNC     20     strtol
224 0x00001234 0x00010234 GLOBAL FUNC     92     __libc_fini_array
225 0x00011b74 0x00020b74 GLOBAL FUNC    216     __unpack_f
226 0x000082bc 0x000172bc GLOBAL FUNC    124     __hi0bits
227 0x000116b4 0x000206b4 GLOBAL FUNC    148     __fixdfsi
228 0x0000af3c 0x00019f3c GLOBAL FUNC     16     strtod
229 0x00010850 0x0001f850 GLOBAL FUNC     20     write
230 0x00012124 0x00021124 GLOBAL FUNC      4     __gtsf2
231 0x00010864 0x0001f864 GLOBAL FUNC     28     fstat
232 0x000109a8 0x0001f9a8 GLOBAL FUNC     36     kill
233 0x00011504 0x00020504 GLOBAL FUNC     84     __ledf2
234 0x00008610 0x00017610 GLOBAL FUNC    312     __pow5mult
235 ---------- 0x00025174 GLOBAL OBJ       4     __nlocale_changed
236 0x000014d0 0x000104d0 GLOBAL FUNC     68     _scanf_r
238 0x00010b04 0x0001fb04 GLOBAL FUNC      8     chdir
239 0x00011a14 0x00020a14 GLOBAL FUNC    352     __pack_f
241 0x00006238 0x00015238 GLOBAL FUNC      0     __sfp_lock_acquire
242 0x00007bac 0x00016bac GLOBAL FUNC    224     memchr
243 0x00009940 0x00018940 GLOBAL FUNC    112     _sprintf_r
244 0x000065ec 0x000155ec GLOBAL FUNC    780     _free_r
245 0x000109cc 0x0001f9cc GLOBAL FUNC     36     wait
246 0x00006fd0 0x00015fd0 GLOBAL FUNC      8     __locale_mb_cur_max
247 0x000047cc 0x000137cc GLOBAL FUNC    396     __call_exitprocs
248 ---------- 0x00025170 GLOBAL OBJ       4     __mlocale_changed
249 0x00001000 0x00010000 GLOBAL NOTYPE    0     _ftext
250 0x00016098 0x00025098 GLOBAL OBJ       8     __malloc_sbrk_base
251 0x00001000 0x00010000 GLOBAL NOTYPE    0     _start
252 0x0001089c 0x0001f89c GLOBAL FUNC     28     lstat
253 0x00008748 0x00017748 GLOBAL FUNC    352     __lshift
254 0x0001083c 0x0001f83c GLOBAL FUNC     20     read
255 0x000121d8 0x000211d8 GLOBAL FUNC    172     __floatsisf
256 0x0000f45c 0x0001e45c GLOBAL FUNC    504     __ssprint_r
257 0x000046cc 0x000136cc GLOBAL FUNC    256     __register_exitproc
258 0x0000f38c 0x0001e38c GLOBAL FUNC    208     strncmp
259 0x0000841c 0x0001741c GLOBAL FUNC    500     __multiply
260 0x00010938 0x0001f938 GLOBAL FUNC     32     unlink
261 ---------- 0x000251d0 GLOBAL OBJ      40     __malloc_current_mallinfo
262 0x00012188 0x00021188 GLOBAL FUNC      4     __eqsf2
263 0x00008cf0 0x00017cf0 GLOBAL FUNC    320     __d2b
264 0x0000b18c 0x0001a18c GLOBAL FUNC    484     _strtoul_r
265 0x00011394 0x00020394 GLOBAL FUNC    212     __fpcmp_parts_d
266 0x00011748 0x00020748 GLOBAL FUNC     56     __negdf2
267 0x0001097c 0x0001f97c GLOBAL FUNC     36     fork
268 0x00004568 0x00013568 GLOBAL FUNC    356     __swsetup_r
269 0x00011260 0x00020260 GLOBAL FUNC    308     __divdf3
270 0x000123e4 0x000213e4 GLOBAL FUNC     56     __negsf2
271 0x00006110 0x00015110 GLOBAL FUNC    264     __sfp
272 0x00008f2c 0x00017f2c GLOBAL FUNC    104     __copybits
273 0x00015858 0x00024858 GLOBAL OBJ    2064     __malloc_av_
274 0x00006244 0x00015244 GLOBAL FUNC      4     __sinit_lock_release
275 0x00011058 0x00020058 GLOBAL FUNC    520     __muldf3
276 0x00009a2c 0x00018a2c GLOBAL FUNC    100     __sread
277 0x00013458 0x00022458 GLOBAL OBJ      16     __thenan_sf
278 0x000064bc 0x000154bc GLOBAL FUNC     24     fread
279 0x000107cc 0x0001f7cc GLOBAL FUNC     48     __syscall_error
280 0x00007fa8 0x00016fa8 GLOBAL FUNC      4     __malloc_lock
282 0x00010b30 0x0001fb30 GLOBAL FUNC     80     sbrk
283 0x00005e7c 0x00014e7c GLOBAL FUNC     92     _fflush_r
284 0x0000e4cc 0x0001d4cc GLOBAL FUNC    180     _calloc_r
285 0x0001208c 0x0002108c GLOBAL FUNC     64     __cmpsf2
286 0x00010abc 0x0001fabc GLOBAL FUNC     32     gettimeofday
287 0x00007ecc 0x00016ecc GLOBAL NOTYPE    0     memset
288 0x00001150 0x00010150 GLOBAL FUNC    160     main
289 ---------- 0x00025178 GLOBAL OBJ       8     __malloc_max_total_mem
290 0x000105d4 0x0001f5d4 GLOBAL FUNC     16     __swbuf
291 0x00012180 0x00021180 GLOBAL FUNC      4     __ltsf2
292 0x00006268 0x00015268 GLOBAL FUNC    596     _fread_r
293 0x00009b74 0x00018b74 GLOBAL FUNC      8     __sclose
294 0x0000e684 0x0001d684 GLOBAL FUNC     12     fclose
295 0x000117ac 0x000207ac GLOBAL FUNC     76     __truncdfsf2
296 0x0000af9c 0x00019f9c GLOBAL FUNC    476     _strtol_r
297 0x00004b44 0x00013b44 GLOBAL FUNC   4300     _dtoa_r
298 0x000071c0 0x000161c0 GLOBAL FUNC   1988     _malloc_r
299 0x00010740 0x0001f740 GLOBAL FUNC     48     __ascii_wctomb
300 0x0000cf78 0x0001bf78 GLOBAL FUNC    240     __submore
301 0x00006dac 0x00015dac GLOBAL FUNC    176     _fwalk
302 0x00007b48 0x00016b48 GLOBAL FUNC    100     _mbtowc_r
303 0x00013440 0x00022440 GLOBAL OBJ      24     __thenan_df
304 0x000064d4 0x000154d4 GLOBAL FUNC    280     _malloc_trim_r
305 0x00011ce8 0x00020ce8 GLOBAL FUNC    420     __mulsf3
306 0x00009b7c 0x00018b7c GLOBAL NOTYPE    0     strcmp
307 0x0000e3f8 0x0001d3f8 GLOBAL FUNC     20     vfiprintf
308 0x00010b0c 0x0001fb0c GLOBAL FUNC      8     getcwd
309 0x00011560 0x00020560 GLOBAL FUNC      4     __nedf2
310 0x00001048 0x00010048 GLOBAL NOTYPE    0     _fini
311 0x000099b0 0x000189b0 GLOBAL FUNC    124     sprintf
312 0x00013468 0x00022468 GLOBAL OBJ     256     __clz_tab
313 ---------- 0x00025168 GLOBAL OBJ       8     _PathLocale
314 0x0000af4c 0x00019f4c GLOBAL FUNC     80     strtof
315 0x000011f0 0x000101f0 GLOBAL FUNC     20     atexit
316 0x000120cc 0x000210cc GLOBAL FUNC     88     __gesf2
317 0x00006ff8 0x00015ff8 GLOBAL FUNC     16     setlocale
318 0x00001480 0x00010480 GLOBAL FUNC     80     scanf
319 0x000098b4 0x000188b4 GLOBAL FUNC      8     nanf
320 0x00016080 0x00025080 GLOBAL OBJ       8     _impure_ptr
321 0x00005c10 0x00014c10 GLOBAL FUNC    620     __sflush_r
322 0x00007984 0x00016984 GLOBAL FUNC    180     _mbrtowc_r
323 0x00006fe4 0x00015fe4 GLOBAL FUNC      8     __locale_cjk_lang
324 0x0000f654 0x0001e654 GLOBAL FUNC   3592     _svfiprintf_r
325 0x000095ac 0x000185ac GLOBAL FUNC    588     __srefill_r
326 0x00007b08 0x00016b08 GLOBAL FUNC     64     __ascii_mbtowc
327 0x00008b10 0x00017b10 GLOBAL FUNC    144     __ulp
328 0x00006258 0x00015258 GLOBAL FUNC     16     __fp_unlock_all
329 0x00007008 0x00016008 GLOBAL FUNC      8     localeconv
330 0x00010adc 0x0001fadc GLOBAL FUNC     16     ftime
331 0x00010880 0x0001f880 GLOBAL FUNC     28     stat
332 0x000108cc 0x0001f8cc GLOBAL FUNC     28     access
333 0x00016068 0x00025068 GLOBAL NOTYPE    0     _edata
334 ---------- 0x00025208 GLOBAL NOTYPE    0     _end
335 0x0001218c 0x0002118c GLOBAL FUNC     72     __unordsf2
336 0x0000e690 0x0001d690 GLOBAL FUNC    364     __fputwc
337 0x000044a8 0x000134a8 GLOBAL FUNC     96     vfscanf
338 0x00009a98 0x00018a98 GLOBAL FUNC    112     __swrite
339 0x000160a0 0x000250a0 GLOBAL OBJ       8     __malloc_trim_threshold
340 0x0001091c 0x0001f91c GLOBAL FUNC     28     link
341 0x00006fd8 0x00015fd8 GLOBAL FUNC     12     __locale_msgcharset
342 0x00001204 0x00010204 GLOBAL FUNC     48     exit
343 0x0000d348 0x0001c348 GLOBAL FUNC   4272     _vfiprintf_r
344 0x00006e5c 0x00015e5c GLOBAL FUNC    192     _fwalk_reent
345 0x00012284 0x00021284 GLOBAL FUNC    212     __floatunsisf
346 0x00008908 0x00017908 GLOBAL FUNC    520     __mdiff
347 0x00016088 0x00025088 GLOBAL OBJ       8     __ctype_ptr__
348 0x0000623c 0x0001523c GLOBAL FUNC      4     __sfp_lock_release
349 0x000097fc 0x000187fc GLOBAL FUNC    184     __sccl
350 0x00012b48 0x00021b48 GLOBAL OBJ     257     _ctype_
351 0x00010814 0x0001f814 GLOBAL FUNC     20     openat
352 0x00011568 0x00020568 GLOBAL FUNC     72     __unorddf2
353 0x000160a8 0x000250a8 GLOBAL OBJ       8     __mbtowc
354 0x00011fb8 0x00020fb8 GLOBAL FUNC    212     __fpcmp_parts_f
355 0x00010b80 0x0001fb80 GLOBAL FUNC     28     _exit
356 0x00007014 0x00016014 GLOBAL FUNC    428     __smakebuf_r
357 0x00001514 0x00010514 GLOBAL FUNC    204     strlen
358 0x000107fc 0x0001f7fc GLOBAL FUNC     24     open
359 0x000114a8 0x000204a8 GLOBAL FUNC     88     __gedf2
360 0x0000e994 0x0001d994 GLOBAL FUNC   1936     __gethex
361 0x000160b0 0x000250b0 GLOBAL OBJ       8     __wctomb
362 0x0000d330 0x0001c330 GLOBAL FUNC     24     __sprint_r
363 0x00010770 0x0001f770 GLOBAL FUNC     92     _wctomb_r
365 0x000117f8 0x000207f8 GLOBAL FUNC     96     __clzdi2
366 0x00011004 0x00020004 GLOBAL FUNC     84     __subdf3
367 0x000015e0 0x000105e0 GLOBAL FUNC   7288     _vfprintf_r
368 0x00008338 0x00017338 GLOBAL FUNC    176     __lo0bits
369 0x0000332c 0x0001232c GLOBAL FUNC   4476     __svfscanf_r
370 ---------- 0x00025168 GLOBAL NOTYPE    0     _fbss
371 0x0000d068 0x0001c068 GLOBAL FUNC    460     _ungetc_r
373 0x00010688 0x0001f688 GLOBAL FUNC    184     wcrtomb
374 0x000108fc 0x0001f8fc GLOBAL FUNC     32     close
375 0x00011c4c 0x00020c4c GLOBAL FUNC     72     __addsf3
376 0x00010d8c 0x0001fd8c GLOBAL FUNC    332     __pack_d
377 0x00003258 0x00012258 GLOBAL FUNC     20     vfprintf
378 0x0000e824 0x0001d824 GLOBAL FUNC    120     fputwc
380 0x00006240 0x00015240 GLOBAL FUNC      4     __sinit_lock_acquire
381 0x00008080 0x00017080 GLOBAL FUNC    272     __multadd
382 0x0000805c 0x0001705c GLOBAL FUNC     36     _Bfree
EOF
RUN

NAME=ELF: riscv64: file format
FILE=bins/elf/analysis/guess-number-riscv64
CMDS=i
EXPECT=<<EOF
fd       3
file     bins/elf/analysis/guess-number-riscv64
size     0x9d5a8
humansz  629.4K
mode     r-x
format   elf64
iorw     false
block    0x100
type     EXEC (Executable file)
arch     riscv
cpu      rv64i2p0_c2p0_m2p0_a2p0_f2p0_d2p0_v2p0
features N/A
baddr    0x00010000
binsz    0x0009d024
bintype  elf
bits     64
class    ELF64
compiler GCC: (GNU) 5.2.0
dbg_file N/A
endian   LE
hdr.csum N/A
guid     N/A
intrp    N/A
laddr    0x00000000
lang     c
machine  RISC V
maxopsz  6
minopsz  4
os       linux
cc       N/A
pcalign  2
rpath    NONE
subsys   linux
stripped false
havecode true
va       true
static   true
linenum  true
lsyms    true
canary   false
pie      false
relrocs  true
nx       false
EOF
RUN

NAME=ELF: riscv64: main analysis
FILE=bins/elf/analysis/guess-number-riscv64
CMDS=<<EOF
e asm.bytes=true
e asm.calls=false
s main
af
pdf
EOF
EXPECT=<<EOF
/ int main(int argc, char **argv, char **envp);
|           ; var int64_t var_18h @ stack - 0x18
|           ; var int64_t var_14h @ stack - 0x14
|           ; var int64_t var_10h @ stack - 0x10
|           ; var int64_t var_8h @ stack - 0x8
|           0x00010150      130101fe       addi  sp, sp, -0x20
|           0x00010154      233c1100       sd    ra, 0x18(sp)
|           0x00010158      23388100       sd    s0, 0x10(sp)
|           0x0001015c      13040102       addi  s0, sp, 0x20
|           0x00010160      9307b007       li    a5, 0x7b
|           0x00010164      2326f4fe       sw    a5, -0x14(s0)
|           0x00010168      9307f0ff       li    a5, -1
|           0x0001016c      2324f4fe       sw    a5, -0x18(s0)
|           ; CODE XREFS from main @ 0x101c8, 0x101d8
|      ..-> 0x00010170      b7170200       lui   a5, 0x21
|      ::   0x00010174      1385874f       addi  a0, a5, 0x4f8
|      ::   0x00010178      ef00c01f       jal   sym.printf
|      ::   0x0001017c      930784fe       addi  a5, s0, -0x18
|      ::   0x00010180      93850700       mv    a1, a5
|      ::   0x00010184      b7170200       lui   a5, 0x21
|      ::   0x00010188      13850751       addi  a0, a5, 0x510
|      ::   0x0001018c      ef00402f       jal   sym.scanf
|      ::   0x00010190      032784fe       lw    a4, -0x18(s0)
|      ::   0x00010194      8327c4fe       lw    a5, -0x14(s0)
|     ,===< 0x00010198      631cf700       bne   a4, a5, 0x101b0
|     |::   0x0001019c      b7170200       lui   a5, 0x21
|     |::   0x000101a0      13858751       addi  a0, a5, 0x518
|     |::   0x000101a4      ef00002d       jal   sym.puts
|     |::   0x000101a8      93070000       li    a5, 0
|    ,====< 0x000101ac      6f000003       j     0x101dc
|    |`---> 0x000101b0      032784fe       lw    a4, -0x18(s0)
|    | ::   0x000101b4      8327c4fe       lw    a5, -0x14(s0)
|    |,===< 0x000101b8      635af700       bge   a4, a5, 0x101cc
|    ||::   0x000101bc      b7170200       lui   a5, 0x21
|    ||::   0x000101c0      13858752       addi  a0, a5, 0x528
|    ||::   0x000101c4      ef00002b       jal   sym.puts
|    ||`==< 0x000101c8      6ff09ffa       j     0x10170
|    |`---> 0x000101cc      b7170200       lui   a5, 0x21
|    |  :   0x000101d0      13858753       addi  a0, a5, 0x538
|    |  :   0x000101d4      ef00002a       jal   sym.puts
|    |  `=< 0x000101d8      6ff09ff9       j     0x10170
|    |      ; CODE XREF from main @ 0x101ac
|    `----> 0x000101dc      13850700       mv    a0, a5
|           0x000101e0      83308101       ld    ra, 0x18(sp)
|           0x000101e4      03340101       ld    s0, 0x10(sp)
|           0x000101e8      13010102       addi  sp, sp, 0x20
\           0x000101ec      67800000       ret
EOF
RUN

NAME=ELF: riscv64: full analysis
FILE=bins/elf/analysis/guess-number-riscv64
CMDS=<<EOF
aaa
e asm.bytes=true
e asm.calls=false
s main
pdf
EOF
EXPECT=<<EOF
            ; CALL XREF from entry0 @ 0x10040
/ int main(int argc, char **argv, char **envp);
|           ; var int64_t var_18h @ stack - 0x18
|           ; var int64_t var_14h @ stack - 0x14
|           ; var int64_t var_10h @ stack - 0x10
|           ; var int64_t var_8h @ stack - 0x8
|           0x00010150      130101fe       addi  sp, sp, -0x20
|           0x00010154      233c1100       sd    ra, 0x18(sp)
|           0x00010158      23388100       sd    s0, 0x10(sp)
|           0x0001015c      13040102       addi  s0, sp, 0x20
|           0x00010160      9307b007       li    a5, 0x7b
|           0x00010164      2326f4fe       sw    a5, -0x14(s0)
|           0x00010168      9307f0ff       li    a5, -1
|           0x0001016c      2324f4fe       sw    a5, -0x18(s0)
|           ; CODE XREFS from main @ 0x101c8, 0x101d8
|      ..-> 0x00010170      b7170200       lui   a5, 0x21
|      ::   0x00010174      1385874f       addi  a0, a5, 0x4f8
|      ::   0x00010178      ef00c01f       jal   dbg.printf
|      ::   0x0001017c      930784fe       addi  a5, s0, -0x18
|      ::   0x00010180      93850700       mv    a1, a5
|      ::   0x00010184      b7170200       lui   a5, 0x21
|      ::   0x00010188      13850751       addi  a0, a5, 0x510
|      ::   0x0001018c      ef00402f       jal   dbg.scanf
|      ::   0x00010190      032784fe       lw    a4, -0x18(s0)
|      ::   0x00010194      8327c4fe       lw    a5, -0x14(s0)
|     ,===< 0x00010198      631cf700       bne   a4, a5, 0x101b0
|     |::   0x0001019c      b7170200       lui   a5, 0x21
|     |::   0x000101a0      13858751       addi  a0, a5, 0x518
|     |::   0x000101a4      ef00002d       jal   dbg.puts
|     |::   0x000101a8      93070000       li    a5, 0
|    ,====< 0x000101ac      6f000003       j     0x101dc
|    |`---> 0x000101b0      032784fe       lw    a4, -0x18(s0)
|    | ::   0x000101b4      8327c4fe       lw    a5, -0x14(s0)
|    |,===< 0x000101b8      635af700       bge   a4, a5, 0x101cc
|    ||::   0x000101bc      b7170200       lui   a5, 0x21
|    ||::   0x000101c0      13858752       addi  a0, a5, 0x528
|    ||::   0x000101c4      ef00002b       jal   dbg.puts
|    ||`==< 0x000101c8      6ff09ffa       j     0x10170
|    |`---> 0x000101cc      b7170200       lui   a5, 0x21
|    |  :   0x000101d0      13858753       addi  a0, a5, 0x538
|    |  :   0x000101d4      ef00002a       jal   dbg.puts
|    |  `=< 0x000101d8      6ff09ff9       j     0x10170
|    |      ; CODE XREF from main @ 0x101ac
|    `----> 0x000101dc      13850700       mv    a0, a5
|           0x000101e0      83308101       ld    ra, 0x18(sp)
|           0x000101e4      03340101       ld    s0, 0x10(sp)
|           0x000101e8      13010102       addi  sp, sp, 0x20
\           0x000101ec      67800000       ret
EOF
RUN
