This builds on some parts from D33601 - some of them were commented on before. This patch contains comments and explanations about those non-obvious parts.
Details
Diff Detail
Event Timeline
src/AddressSpace.hpp | ||
---|---|---|
388–389 | ".eh_frame" is 9 characters, right? I thought mingw linkers took sections with long names and moved them to an extended symbol table. Does that not apply to .eh_frame? |
src/AddressSpace.hpp | ||
---|---|---|
388–389 | Yes, they do, so this actually only matches .eh_fram. I didn't yet look at how to navigate the IMAGE_*_HEADERS structs to find the coresponding full long name. |
src/AddressSpace.hpp | ||
---|---|---|
388–389 | Can you add a FIXME here? No need to read the long-form symbol table yet, I just want to document that we will need that for compatibility with ld.bfd. |
src/AddressSpace.hpp | ||
---|---|---|
521 | ... actually, I'm not sure how useful it is - it requires initializing the symbol handler with SymInitialize and point to a path to find the symbols. Plus that the symbol handler is single threaded and any calls to that would need to be guarded with a global mutex. So I think I'd defer that for now at least. |
Added a fixme comment about the truncated section name, flipped the ifdef in the assembly source. Didn't implement findFunctionName.
src/AddressSpace.hpp | ||
---|---|---|
521 | alright, fine with me. |
Are there any further comments on this, or can someone of those who commented on it before approve it?
Thanks, will push this one without the docs update since it's still buggy in practice on windows until D38680 gets resolved.
FWIW, for this to actually work correct which this docs change claims, this also depends on D38680.