libunwind and windows call stack determination, wine's dbghelp...

Tarmo Pikaro tapika at yahoo.com
Sat Jun 15 13:24:12 CDT 2019


Hi !
I've managed to compile libunwind on Visual Studio 2017 with linux subsystem, made my own fork from libunwind here: https://github.com/tapika/libunwind
For now I have "hardcoded" into git some of autogenerated files, just not to play aroundwith bash / shell / tools.
Can push my solution / project to your git if necessary, but I think Visual studio is still bit immaturewhat concerns linux, but debugging & compilation seems to work on some level.
Would it be possible to permanently rename "aux" folder, as it's name of windows device drive, andyou just cannot do checkout on windows, no matter which tool you use.
At the moment I want to recombine windows stack walking with linux stack walking, something similar seems to be implemented in https://github.com/Magnusnorrby/MolyRift/blob/master/Kernel/OVR_DebugHelp.cpp
I'll probably try to recombine or create something similar. Need to analyze bit deeperhow can do it.
I've also tried to rip off dbghelp.dll from wine linux emulator, conversation on this can be found here:
http://wine.1045685.n8.nabble.com/dbghelp-detached-from-wine-into-standalone-windows-dll-td6007932.html
Basically at the moment what concerns stack walking - I see couple of alternatives
1. make something similar to OVR_DebugHelp.cpp, so API would be coombination of all 3 stack walk apis.
2. create new platform support under libunwind library, but need to analyze this alternative deeperif it's feasible. (use libunwind API, but provide windows API implementation for that one).
3. create fully platform independent solution, like rip off dbghelp wired to multiple platforms.(Separate library from libunwind)
I'm thinking about 2,1,3 with focus on 3 when possible (fully platform / os neutral), but priority order as specified.
But despite of call stack approaches - I would like to discuss if anyone can commentof idea of having c++ compiled dll / so so that it would be platform neutral ?
Original question resides in here:
https://www.reddit.com/r/cpp/comments/bjgt0j/make_portable_dll_without_second_compilation/
Does libunwind provides only parsing capabilities over dwarf / elf, would it be possible to modify dwarf file format to have so / dll file format to be fully OS / platform neutral ?

-- Have a nice day!     Tarmo.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20190615/9e1ea3a0/attachment-0001.html>


More information about the wine-devel mailing list