[lldb] Add an example of interactive scripted process debugging
authorMed Ismail Bennani <medismail.bennani@gmail.com>
Fri, 21 Apr 2023 20:34:56 +0000 (13:34 -0700)
committerMed Ismail Bennani <medismail.bennani@gmail.com>
Tue, 25 Apr 2023 22:02:34 +0000 (15:02 -0700)
commit6cf668016efde05db8c9f179843ec457ad017ff7
treebd5a0ab6cd38cccb2abeb57bd7374edc2d87fdbc
parentaf1fea818391f20d585414493adb3fcdc70b4756
[lldb] Add an example of interactive scripted process debugging

This patch is a proof of concept that shows how a scripted process could
be used with real process to perform interactive debugging.

In this example, we run a process that spawns 10 threads.
That process gets launched by an intermediary scripted process who's job
is to intercept all of it's process events and dispatching them
back either to the real process or to other child scripted processes.

In this example, we have 2 child scripted processes, with even and odd
thread indices. The goal is to be able to do thread filtering and
explore the various interactive debugging approaches, by letting a child
process running when stopping the other process and inspecting it.
Another approach would be to have the child processes execution in-sync
to force running every child process when one of them starts running.

Differential Revision: https://reviews.llvm.org/D145297

Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
lldb/test/API/functionalities/interactive_scripted_process/Makefile [new file with mode: 0644]
lldb/test/API/functionalities/interactive_scripted_process/TestInteractiveScriptedProcess.py [new file with mode: 0644]
lldb/test/API/functionalities/interactive_scripted_process/interactive_scripted_process.py [new file with mode: 0644]
lldb/test/API/functionalities/interactive_scripted_process/main.cpp [new file with mode: 0644]