Nikita Smith and Ryan Fleury
0d5df8f38d
ELF includes
2025-11-07 14:39:46 -08:00
Nikita Smith and Ryan Fleury
fdb1ad5ab6
do not unwind with PE when DWARF unwinder exits with stale flag
2025-11-07 14:39:46 -08:00
Nikita Smith and Ryan Fleury
6cc7b5622c
ELF note parser
2025-11-07 14:39:46 -08:00
Nikita Smith and Ryan Fleury
b596a6ed8a
dumper for SHT_NOTE
2025-11-07 14:39:46 -08:00
Nikita Smith and Ryan Fleury
8bc1e4b21c
explicitly update stack pointer
2025-11-07 14:39:46 -08:00
Nikita Smith and Ryan Fleury
3f70cd6d05
handle CFI programs without meaningful instructions
2025-11-07 14:39:46 -08:00
Nikita Smith and Ryan Fleury
7616767ed7
fix CFA_Expr instruction fill
2025-11-07 14:39:46 -08:00
Nikita Smith and Ryan Fleury
f2392284d5
add missing case for the register rule
2025-11-07 14:39:46 -08:00
Nikita Smith and Ryan Fleury
793cd90604
zero out IP when reached last frame
2025-11-07 14:39:45 -08:00
Nikita Smith and Ryan Fleury
16232b98d8
SP from arch helper
2025-11-07 14:39:45 -08:00
Nikita Smith and Ryan Fleury
9e965e345f
string format expression op when version is below 3
2025-11-07 14:39:45 -08:00
Nikita Smith and Ryan Fleury
1b6e9e9d7b
parse "Signal Frame" aug flag and fill out augmentation data size
2025-11-07 14:39:45 -08:00
Nikita Smith and Ryan Fleury
821af9b104
fix FDE binary search for case where PC is not exactly on first instruction
2025-11-07 14:39:45 -08:00
Nikita Smith and Ryan Fleury
d44efc15c8
remove structs that are now in GNU layer and add 32 -> 64 bit struct converters
2025-11-07 14:39:45 -08:00
Nikita Smith and Ryan Fleury
e6a01472c8
layer for x64
2025-11-07 14:39:45 -08:00
Nikita Smith and Ryan Fleury
942c354bd9
fix eh_frame dumping
2025-11-07 14:39:45 -08:00
Nikita Smith and Ryan Fleury
f0bd30c89b
layer for interfacing with GNU
2025-11-07 14:39:45 -08:00
Nikita Smith and Ryan Fleury
b091233a33
infer path style from exe type
2025-11-07 14:39:45 -08:00
Nikita Smith and Ryan Fleury
36b22c06b1
moved eh_frame files to dwarf layer
2025-11-07 14:39:45 -08:00
Nikita Smith and Ryan Fleury
78f2e641bc
fix program header rebase issue in non-PIE exes, and export program header
...
info through DEMON event
2025-11-07 14:39:45 -08:00
Nikita Smith and Ryan Fleury
7f705923e6
parse CIE and FDE out of runtime ELF
2025-11-07 14:39:45 -08:00
Nikita Smith and Ryan Fleury
4e2c983b0f
skip leading NOP opcodes, which caused extra CFI rows to be emitted
2025-11-07 14:39:45 -08:00
Nikita Smith and Ryan Fleury
dad92610de
dumper for .eh_frame_hdr and .eh_frame
2025-11-07 14:39:45 -08:00
Nikita Smith and Ryan Fleury
327645436a
named semaphore impl for Linux
2025-11-07 14:39:45 -08:00
Nikita Smith and Ryan Fleury
c32d85ea2d
DWARF helper
2025-11-07 14:39:45 -08:00
Nikita Smith and Ryan Fleury
3b81e1a0e9
connect DWARF virtual stack unwinder
2025-11-07 14:39:45 -08:00
Nikita Smith and Ryan Fleury
da38f266d9
parser for .eh_frame versions of CIE and FDE and new helper for
...
mapping PC -> CFI Row
2025-11-07 14:39:45 -08:00
Nikita Smith and Ryan Fleury
ecbce1efdf
add TR and LDTR registers
2025-11-07 14:39:45 -08:00
Nikita Smith
43fcc21490
clang build fixes
2025-10-10 10:19:47 -07:00
Nikita Smith
3bd89b1fad
switch over to new MD5 hash lib
2025-10-10 10:15:22 -07:00
Nikita Smith
061b5c5955
added CFA instruction parser, interpreter, and a dumper
2025-10-10 10:09:46 -07:00
Nikita Smith
7eb64dbd13
metagen does not have this macro...
2025-10-07 20:42:52 -07:00
Nikita Smith
e1986c9594
clang fixes
2025-10-07 20:37:00 -07:00
Nikita Smith
401d7b47df
factor out C++ ABI exception handling
2025-10-07 20:28:06 -07:00
Nikita Smith
3560c7d3e7
dump CIE and FDE
2025-10-07 18:16:32 -07:00
Nikita Smith
e4f6c0fc8e
helper for querying arch bittness in byte size
2025-10-07 18:16:31 -07:00
Nikita Smith
7cf3eaf73f
parsers for CIE and FDE
2025-10-07 18:16:31 -07:00
Nikita Smith
62ae5ca3f5
stringify format and cfa opcodes enums
2025-10-07 18:16:31 -07:00
Nikita Smith
fb0d42e6d8
extend stb_sprintf.h with formatter for Rng1U64 via %r
2025-10-07 18:16:31 -07:00
Nikita Smith
da0028033d
changed dumper to print .debug_info in more compact form
2025-10-03 20:10:09 -07:00
Nikita Smith
b1b83c4e3d
bugfix const64 interp
2025-10-03 17:16:45 -07:00
Nikita Smith
f8229a390d
merge conf fix
2025-10-02 18:19:42 -07:00
Nikita Smith
9acff9ecd2
use check sum defn from rdi.h
2025-10-02 18:19:42 -07:00
Nikita Smith
555f8ec6ff
grab ranges in compile unit tag for the unit vmap
2025-10-02 18:19:42 -07:00
Nikita Smith
4ba1ee6e06
follow C type conversion rules in the expression transpiler
2025-10-02 18:19:42 -07:00
Nikita Smith
1f9ce6e6ba
eval opcode stubs
2025-10-02 18:19:42 -07:00
Nikita Smith
c7774c7582
helper for convert opcode
2025-10-02 18:19:42 -07:00
Nikita Smith
1264115d13
define push and pop counts for expression opcodes
2025-10-02 18:19:42 -07:00
Nikita Smith
954633bba2
add opcode for swapping top two values on the stack
2025-10-02 18:19:42 -07:00
Nikita Smith
48c7e45535
helper for determining if bytecode has dependency on TLS
2025-10-02 18:19:42 -07:00
Nikita Smith
0f9df9bc40
change opcode type to U8
2025-10-02 18:19:42 -07:00
Nikita Smith
0e9739f964
expression parser
2025-10-02 18:19:42 -07:00
Nikita Smith
da74b8595c
add operand count for expression opcodes
2025-10-02 18:19:42 -07:00
Nikita Smith
81d747b8d7
fix process join
2025-09-29 18:05:11 -07:00
Nikita Smith
8bf0a3de5b
split conversion pass into three (types, udts, and symbols) and use
...
new locations chunk list
2025-09-29 00:11:27 -07:00
Nikita Smith
07d77a0e79
report unsuccessful writes
2025-09-26 16:28:46 -07:00
Nikita Smith
c5fe329c05
fix return status for file writes
2025-09-26 16:28:46 -07:00
Nikita Smith
5709fb54dd
simplify debug info conversion loop
2025-09-26 16:28:46 -07:00
Nikita Smith
7084320a83
helper for finding parent type
2025-09-26 16:28:46 -07:00
Nikita Smith
eb4e6d2883
alloc slots for null
2025-09-26 16:28:46 -07:00
Nikita Smith
d3d91c64cc
get DWARF converter up and running
2025-09-25 12:38:21 -07:00
Nikita Smith and Ryan Fleury
18b5e27015
change log
2025-09-24 12:42:17 -07:00
Nikita Smith and Ryan Fleury
647bc4206f
minor typo
2025-09-24 12:42:17 -07:00
Nikita Smith and Ryan Fleury
06e895be7c
organize task structs
2025-09-24 12:42:17 -07:00
Nikita Smith and Ryan Fleury
20c92e0baf
speed up base reloc gather step and serialize pages in parallel
2025-09-24 12:42:17 -07:00
Nikita Smith and Ryan Fleury
3c0c531c53
reloc helper
2025-09-24 12:42:17 -07:00
Nikita Smith and Ryan Fleury
0a930be613
use radsort for sorting base reloc pages
2025-09-24 12:42:17 -07:00
Nikita Smith
6b278e1ccc
parallelize image fill
2025-09-22 10:06:21 -07:00
Nikita Smith
a75a33e6d3
minor fix for UBA detour
2025-09-22 10:06:21 -07:00
Nikita Smith
e72512f638
switch over to 64-bit pointer tagging
2025-09-22 10:06:21 -07:00
Nikita Smith
d1dd8e654c
add 128-bit compare exchange
2025-09-22 10:06:21 -07:00
Nikita Smith
861c2cf893
macro for aligning types
2025-09-22 10:06:21 -07:00
Nikita Smith
4717701540
update threading API
2025-09-22 10:06:21 -07:00
Nikita Smith
362557e503
renormalize line endings
2025-09-22 10:06:21 -07:00
Nikita Smith
872c387bad
let errors from MT to bubble up to linker's stdout and stderr
2025-09-22 10:06:21 -07:00
Nikita Smith
3d7afb58fa
speed up symbol patching
2025-09-22 10:06:21 -07:00
Nikita Smith
42999bea63
profile markup obj relocation patching
2025-09-22 10:06:21 -07:00
Nikita Smith
553154eb39
layer color fix
2025-09-22 10:06:21 -07:00
Nikita Smith
ac985bb5da
add a real pgo PGO target
2025-09-22 10:06:21 -07:00
Nikita Smith
371e52ad42
add /rad_alt_pch_dir for remapping objs in the local folder for pgo builds
2025-09-22 10:06:21 -07:00
Nikita Smith
ee75ada087
mark function override meta-data sections with link info flag so
...
they do not get a section definition
2025-09-22 10:06:20 -07:00
Nikita Smith
ce044e7e83
detect removed fixup symbol and propagate correct section number
2025-09-22 10:06:20 -07:00
Nikita Smith
a060f581d9
stub /d2
2025-09-22 10:06:20 -07:00
Nikita Smith
17058e71bf
remove empty nodes
2025-09-22 10:06:20 -07:00
Nikita Smith
e864674fbd
add pgo support to build.cmd
2025-09-22 10:06:20 -07:00
Nikita Smith and Ryan Fleury
e33a95bfe2
do not embed time stamp with /brepro
2025-09-17 15:21:37 -07:00
Nikita Smith and Ryan Fleury
0b154cef46
stub /brepro
2025-09-17 15:21:37 -07:00
Nikita Smith and Ryan Fleury
c653410af5
stub /errorreportlevel
2025-09-17 15:21:37 -07:00
Nikita Smith and Ryan Fleury
28aec349fd
update readme
2025-09-17 15:21:37 -07:00
Nikita Smith and Ryan Fleury
b646e1cd43
fix compiler errors
2025-09-17 15:21:37 -07:00
Nikita Smith and Ryan Fleury
fe63983d4a
u32 decrement intrinsic
2025-09-17 15:21:37 -07:00
Nikita Smith and Ryan Fleury
5a12513306
parallelize section garbage collection
...
currently we tag pointers to solve ABA problem however if the list
has more than max_U16 items, the tag will overflow and cause serious issues.
To fix this, we need to use 64-bit tags together with 128-bit interlocked
compare-exchange intrinsic
2025-09-17 15:21:37 -07:00
Nikita Smith and Ryan Fleury
cc8fdc6c6f
order check for COMDATs with any property
2025-09-17 15:21:37 -07:00
Nikita Smith and Ryan Fleury
630c3b42a7
do lightweight import gathering while resolving links
2025-09-17 15:21:37 -07:00
Nikita Smith and Ryan Fleury
d4ac5ede77
assign correct removed section type
2025-09-17 15:21:37 -07:00
Nikita Smith and Ryan Fleury
8a46ee0ad2
return full path to the first matched file
2025-09-17 15:21:37 -07:00
Nikita Smith and Ryan Fleury
0b5dd92a87
minor tweaks
2025-09-17 15:21:37 -07:00
Nikita Smith and Ryan Fleury
ded932e3ba
skip library searches for import stubs
2025-09-17 15:21:37 -07:00
Nikita Smith and Ryan Fleury
98eaf67dd8
while symbol table is being built sort weak and undefined symbols to
...
separate chunk lists to speed up library search
2025-09-17 15:21:37 -07:00
Nikita Smith and Ryan Fleury
4e1ebe5a6b
change import stub symbol characteristic to search alias to skip them
...
on subsequent searches
2025-09-17 15:21:37 -07:00