* Optimize r_file_proc_size() reading by blocks instead of chars ##util
For /proc/self/maps this is almost 2x faster, will be much faster on bigger files
* Make it static, it's not even defined in r_file.h
* Rename `r_file_proc_size()` into `procfile_size()`
Co-authored-by: pancake <pancake@nopcode.org>
Co-authored-by: Anton Kochkov <xvilka@gmail.com>
* Get .debug_info working for DWARF 2, 3
* Fill up missing information in abbrev string table
* Add 64bit dwarf option into debug_info
* Add DWARF4 and DWARF5 forms
* Add unit tests
* added basic test
Co-authored-by: Riccardo Schirone <sirmy15@gmail.com>
* Convert symbol_t name member from char[R_BIN_MACH0_STRING_LENGTH] to char *
* Invert the variables that assmebles the ht key to ensure uniqueness
Long identiers will fill the key buffer with the first 256 chars of the
name and have the rest of the name and the addresss ignored. This can
lead to two different identifiers having the same key.
The first 256 characters of two different identifiers might be
identical, while their address won't. Therefore, to ensure different
identifiers will have different keys, we sholud first emmbed the part
that is ought to be unique in the identifier, the address, and only then
take the identifier itself into account.
* Add testcase
* Define variable outside of the for-loop block
* Remove redundant conditional free
* Replace sdb_fmt with r_str_newf
* Add missing format string argument and use r_str_newf
* Use NULL instead of 0 for name pointer
* Change last to bool and adjust rvalue accordingly
* Ensure we do not process empty an empty string
Co-authored-by: phakeobj <phakeobj@users.noreply.github.com>
* Fixed an issue when analyzing Objective C methods, `count` can be 0xffffffff in some places, which in turn can lead to integer overflow, causing radare2 to try and analyze the whole memory space, effectively causing it to hang.
Co-authored-by: Riccardo Schirone <ret2libc@users.noreply.github.com>
Co-authored-by: pancake <pancake@nowsecure.com>
* Moved dwarf prototypes to its header, added information for DWARF4
* Fixed incorrect line parsing for last compilation unit
* Added ability to parse DWARF4 and DWARF5 but without parsing out the source files