3990b2c6ee
dwarf-assembly: support common exprs DW_OP_breg<n>
2018-08-08 14:33:20 +02:00
310a348bce
Can generate PC holes in eh_elfs
...
Before, the space between FDEs was abstracted away, thought as dead
space that produced an error when queried. This is not the case, though:
empty FDEs indicate undefined DWARF
2018-07-04 18:14:30 +02:00
f2642a70c9
Detect PLT standard expression
2018-07-02 16:22:13 +02:00
235ba740dd
Merge branch 'rbx' into lighter_c_rbx
2018-06-25 16:56:07 +02:00
a34bbd928a
Add FactoredSwitchCompiler - great space gain
2018-06-25 16:32:52 +02:00
b9b66b9244
Refactor switch compiler factories
2018-06-25 11:54:45 +02:00
6fef1c5444
Refactor switch generation
2018-06-25 11:33:36 +02:00
12e749f542
Handle rbx
2018-06-22 09:15:10 +02:00
cd9ecafb4f
Use flags in context structures
2018-06-22 09:12:32 +02:00
b6ae4b2115
Filter out consecutive equal DWARF lines
2018-06-22 09:01:57 +02:00
da05f6b9f1
Patch holes in big switches
2018-06-20 14:13:19 +02:00
81b3419690
Use max(uintptr_t) as error, not assert(0)
2018-06-13 19:13:33 +02:00
fd6c75b2f5
Add --enable-deref-arg to helptext
2018-06-05 18:25:34 +02:00
7960b5ba08
Add and implement --enable-deref-arg feature
2018-06-01 19:52:41 +02:00
6854eb56e4
[BREAKING CHANGE] Unwinding stops at the end
...
This introduces a breaking change: [undefined] was previously
represented by 0, and is now represented by
`numeric_limits<uintptr_t>::max()`
2018-05-16 16:51:01 +02:00
209e668505
Add READMEs
2018-05-15 18:13:09 +02:00
52ea92dcf8
Fix various problems in PC list handling
2018-05-11 15:52:38 +02:00
26d7b2afd5
Add C++ code to make use of .pc_list
2018-05-11 13:09:35 +02:00
4b327c7c56
eh_elf generator: now also producing global switch
2018-05-02 14:58:48 +02:00
f00ec34b4e
CodeGenerator: use hex for switches' bounds
2018-04-27 17:07:58 +02:00
467cfbf0cc
CodeGenerator: fix badly generated eh_elf
2018-04-27 17:07:34 +02:00
da38a9d521
Move _fde_func_t typedef to shared .h
2018-04-27 11:05:34 +02:00
353a97c49d
Refactor code generation: use shared/context_struct.h
...
This allows #include'ing `context_struct.h` in the stack walker
implementation as well
2018-04-25 18:11:59 +02:00
771aec2621
Remove debug output
2018-04-25 17:49:02 +02:00
ff0f8c90df
Allow unimplemented registers to appear in DWARF
...
The presence of such a register — eg. rcx, which is actually used in CFA
on a few lines of libgcc_s.so on my system — will yield an assert(0) in
the produced code, but will at least not fail to compile alltogether.
2018-04-25 17:34:31 +02:00
c07b0623e4
Add generation of a lookup function
2018-04-24 17:44:09 +02:00
44543d85d3
Generate compilable C code, untested
2018-04-23 18:58:05 +02:00
d13b625cc5
SimpleDwarf, DwarfReader: fix machine registers
2018-04-23 16:46:03 +02:00
dc6072e991
Add simple main
2018-04-23 16:22:32 +02:00
f6e9b8ebd2
Add Makefile
2018-04-23 16:22:27 +02:00
f9f64e9606
SimpleDwarf: few fixes
2018-04-23 16:12:10 +02:00
8bf2e1e49d
SimpleDwarf: add pretty-printing operator<<
2018-04-23 15:59:10 +02:00
13e3647629
Add libdwarfpp-based DwarfReader
2018-04-23 15:09:52 +02:00
8c2191f487
Add simplistic Dwarf representation
...
This is only representing a small fragment of Dwarf, **on purpose**: in
practice, the huge majority of Dwarf observed in the wild belongs to
this fragment.
2018-04-23 15:09:48 +02:00