Author: David Spickett Date: 2023-10-23T17:04:34+01:00 New Revision: 70306238cf3730fd7ef02170a1fdfa302676ac2b
URL: https://github.com/llvm/llvm-project/commit/70306238cf3730fd7ef02170a1fdfa302676ac2b DIFF: https://github.com/llvm/llvm-project/commit/70306238cf3730fd7ef02170a1fdfa302676ac2b.diff LOG: [lldb][docs] Add strace example to Debugging doc This has been very useful lately debugging remote connections. In some cases it's probably better than our own logging. Added: Modified: lldb/docs/resources/debugging.rst Removed: ################################################################################ diff --git a/lldb/docs/resources/debugging.rst b/lldb/docs/resources/debugging.rst index 63c88477a848c43..990a95f54e07ff8 100644 --- a/lldb/docs/resources/debugging.rst +++ b/lldb/docs/resources/debugging.rst @@ -213,11 +213,26 @@ child processes. The same goes for ``printf``. If it's called in a child process you won't see the output. -In these cases consider either interactive debugging ``lldb-server`` or +In these cases consider interactive debugging ``lldb-server`` or working out a more specific command such that it does not have to spawn a subprocess. For example if you start with ``platform`` mode, work out what ``gdbserver`` mode process it spawns and run that command instead. +Another option if you have ``strace`` available is to trace the whole process +tree and inspect the logs after the session has ended. :: + + $ strace -ff -o log -p $(pidof lldb-server) + +This will log all syscalls made by ``lldb-server`` and processes that it forks. +``-ff`` tells ``strace`` to trace child processes and write the results to a +separate file for each process, named using the prefix given by ``-o``. + +Search the log files for specific terms to find the process you're interested +in. For example, to find a process that acted as a ``gdbserver`` instance:: + + $ grep "gdbserver" log.* + log.<N>:execve("<...>/lldb-server", [<...> "gdbserver", <...>) = 0 + Remote Debugging ---------------- _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits