Commit graph

23 commits

Author SHA1 Message Date
Giovanni
be83c0276b
update libdemangle (#4429) 2024-04-18 19:59:06 +08:00
Giovanni
5cd4cff7eb
Update libdemangle to latest main and add LD command as alias of iDl (#4411) 2024-04-01 14:39:35 +08:00
Anton Kochkov
046918075e
Use git depth 1 for Meson subprojects (#4138)
* Use git depth 1 for Meson subprojects
* Disable git depth on Debian CI
2024-01-22 21:14:32 +08:00
Anton Kochkov
318a99bbad
Update rz-libdemangle (#3827) 2023-09-05 15:13:11 +08:00
Anton Kochkov
a4ec3563ca
Update rz-libdemangle (#3753) 2023-08-14 13:01:36 +08:00
Giovanni
4ffdf2766d
Bump libdemangle (#3743) 2023-08-10 21:51:52 +08:00
Anton Kochkov
07747e2ba8
Update rz-libdemangle (#3680) 2023-07-21 13:01:23 +08:00
Giovanni
8f2eb45b84
Add bin.demangle.flags to allow users to simplify or not mangled strings (#3659) 2023-07-17 23:31:09 +08:00
Giovanni
09ec12d607
Update libdemangle to 2c90eaa (#3614) 2023-06-29 13:53:22 +08:00
Giovanni
0efc031365
Bump libdemangle version (#3558) 2023-06-06 12:18:43 +08:00
wargio
c85b1afa4c Rewrite how bins are loaded into RzBinObject
This commit rewrites completely how RzBinPlugin are used to load info
into the RzBinObject structure.

Main changes are:
- Avoid looping multiple times to set the same data:
  now the data is cycled only once to rebase addresses, demangle strings
  and to make each loaded structure similar to each other.

- rz_bin_demangle is now demangling only strings:
  the old implementation was a hack over a hack to add classes & methods
  into the RzBinObject while demangling a string.
  This allowed methods and classes to be added to RzBinObject when for
  example invoking `is` or other printing commands.
  This was meant to be an "optimization" to avoid looping and doing
  things on-the-fly.

- Now the demangling is done after guessing the language used in the bin.
  This is done to avoid looping to various demanglers hoping that a
  string is going to be correctly demangled.
  After each string is demangled, the string is given to the language
  related function which adds classes, methods and fields into the
  RzBinObject fields.

- Swift handling is a special case, since the demangler can be disabled
  via -Duse_swift_demangler.
  The issue with the swift demangler is that is not correctly demangling
  strings and outputting swift code, but instead is creating something
  that sometimes works, sometimes doesn't.
  Also the old code only added fields and never methods for "reasons",
  and the new code just uses what the old code was doing as is.

- The new code also takes advantage of the language detection, which now
  happens before the demangling of symbols, imports and relocs.
2023-06-01 23:16:09 +08:00
Giovanni
9339ad128f
Bump rz-libdemangle version to fix windows build (#3490) 2023-04-26 22:19:36 +08:00
Giovanni
616c63e4cc
Bump libdemangle version (#3487) 2023-04-26 12:49:37 +08:00
Giovanni
29c1aa8187
Demangle rust and add classes/methods and bump lib version (#3481) 2023-04-24 23:55:50 +08:00
Giovanni
f115011642
Bump version of libdemangle to support Delphi C++ (#3472)
* Bump version of libdemangle to support Delphi C++
* Removed some WITH_GPL barriers.
2023-04-20 15:05:36 +08:00
Giovanni
ade374378e
Add free-pascal demangling support (#3011)
* Add free-pascal demangling support
* Fixed tests
2022-09-06 10:39:58 +08:00
Giovanni
3752e24b98
Update rz-libdemangle (#2984) 2022-08-27 02:35:07 +02:00
Anton Kochkov
fe1af40ad2 Update libdemangle.wrap 2022-08-24 22:08:34 +08:00
GustavoLCR
416f1650cd
Update libdemangle.wrap (#2735) 2022-06-24 13:18:19 +08:00
Anton Kochkov
5aef0d8a98
Update libdemangle for MSVC fixes (#2556)
Co-authored-by: GustavoLCR <gugulcr@gmail.com>
2022-05-15 20:57:27 +08:00
Giovanni
7745d2f1df
Bump libdemangle to fix Coverity and ASAN findings (#1878) 2021-10-24 10:20:55 +08:00
Giovanni
18569e6cf0
enforce c99/gnu99 on libdemangle (#1785) 2021-10-01 20:10:22 +02:00
Giovanni
e224ee7b28
Add demangling as plugins and libdemangle as external dependency (#1656)
* Added demangling as plugins and libdemangle as external dependency
* Added iDl to return the list of demanglers
* moved demangling tests into rz-libdemangle and keep only bin tests
2021-10-01 10:45:38 +00:00