I've read this tutorial, but I haven't found there anything about reverse debugging. Does lldb have some features like target record
in gdb? If yes, where can I read about it?
In brief, LLDB and GDB are two debuggers. The main difference between LLDB and GDB is that in LLDB, the programmer can debug programs written in C, Objective C and C++ while, in GDB, the programmer can debug programs written in Ada, C, C++, Objective C, Pascal, FORTRAN and Go.
The standard LLDB installation provides you with an extensive set of commands designed to be compatible with familiar GDB commands. In addition to using the standard configuration, you can easily customize LLDB to suit your needs. Both GDB and LLDB are of course excellent debuggers without doubt.
In theory you should be able to debug a GCC-built program with lldb and an LLVM-built program with gdb. In both cases you should compile with -g .
Not yet. To date most of the work on lldb has been to complete the common set of debugger features; it is solid for i386, x86_64, and armv7 debugging on Mac systems. There are people woking on Linux and *BSD ports now - that's hugely important to making lldb usable for lots of people. There are lots of interesting features that can be added to lldb in the future as the core debugger facilities are mature -- genuine reverse execution is one, process recording & playback (what I gather target record
does) is another.
There is this work from last year: https://dev.to/vangelists/live-reverse-debugging-in-lldb-2nf0 https://github.com/vangelists/llvm-project
But looks like it's just a prototype and hasn't been upstreamed so far.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With