@waddlesplash Thanks info. I found those patches in the linked forum topic, but the ticket may have more details. I’ll read that.
I have almost no knowledge about how to implement (and how should it work) debuggers. And I suspect there is difficulty @PulkoMandy says:
So, making LLDB to work with Haiku may be easier to me and more reasonable option for debugging Firefox because:
LLDB itself should be built with GCC(4+) toolchain as the current LLVM/Clang port does, this means debugging LLDB with Debugger should work (at least with -gdwarf-3).
Firefox contains binary part built with Rust, which I believe it is built with LLVM backend even if I instruct to build Firefox with GCC. If the Rust part of the binary was the root cause of the current situation, it seems to require more work on Debugger to handle that.
Making LLDB buildable by referring current patchset for LLVM/Clang in Haikuports should be relatively easy task, after that start debugging and fixing how LLDB loads trivial Haiku program (e.g. HelloWorld) with Debugger.
Thank you. I skimmed the patch for GDB, but didn’t read deeply, because just porting GPL code will require resulting LLDB changes to be licensed under GPL.
I’ll see how the built LLDB fails to load Haiku binary, then I refer how the GDB haiku backend resolved it as minimum. If the part of Haiku backend in resulting patch became the almost same code, then I’ll ask original contributors (of GDB haiku porting) to re-license that part under LLDB compatible license.
For this, I found Debugger has --cli option when exploring its source code, Debugger CLI looks debuggable with Debugger GUI (I tested with release build so no symbols available but can be attached and step in/over/out worked).
The Debugger GUI quits shortly after launched as debug target.
I have a file for use with Umbrello, a UML editor. It details the parts of the Debugger’s class structure that I encountered. Now, if only I could figure out how to upload it…
That’s what my first impression was too. The author of the code clearly spent a lot of time designing it. After working with it more, I think it could be better. The Debugger kit, for example, seems to be tailor-made for the Debugger application, and only the Debugger application. I’m not sure that it would be very useful for, say, porting GDB. Some classes seem to have multiple responsibilities, making it harder to wrap your head around what they do. Maybe if I were to continue reading, my opinion would change once again. I’d be interested in hearing what your impression of the code is after reading/coding it for a while.