wallace added inline comments.
================ Comment at: lldb/source/Plugins/Process/Trace/ProcessTrace.h:18 + +class ProcessTrace : public lldb_private::Process { +public: ---------------- tatyana-krasnukha wrote: > clayborg wrote: > > So one issue is how do we eventually deal with debugging a live process > > that enables tracing. In that case we already have a real process class: > > ProcessGDBRemote most likely. We should avoid putting anything custom that > > is required from a process in this ProcessTrace class for when we actually > > have a real process class already. If we need to add anything, we will need > > to have virtual functions on the lldb_private::Process class that can call > > through to the Trace plug-in via its virtual functions as well to implement > > any functionality we might need. > > > > Is this class solely going to be used for "trace load"? > One option is to implement [[ > https://sourceware.org/gdb/current/onlinedocs/gdb/Branch-Trace-Format.html | > btrace ]] request in the ProcessGDBRemote and make remote stubs support it. > > I'm also interested in live tracing for a custom process plugin which obtains > instruction history in its own way. So, it would be good if a real > process/thread provides data to the tracing plug-in. Thanks @tatyana-krasnukha! I think I'll end up doing what you said. And definitely, step 2 of this project is to trace a live process. ================ Comment at: lldb/source/Plugins/Process/Trace/ProcessTrace.h:18 + +class ProcessTrace : public lldb_private::Process { +public: ---------------- wallace wrote: > tatyana-krasnukha wrote: > > clayborg wrote: > > > So one issue is how do we eventually deal with debugging a live process > > > that enables tracing. In that case we already have a real process class: > > > ProcessGDBRemote most likely. We should avoid putting anything custom > > > that is required from a process in this ProcessTrace class for when we > > > actually have a real process class already. If we need to add anything, > > > we will need to have virtual functions on the lldb_private::Process class > > > that can call through to the Trace plug-in via its virtual functions as > > > well to implement any functionality we might need. > > > > > > Is this class solely going to be used for "trace load"? > > One option is to implement [[ > > https://sourceware.org/gdb/current/onlinedocs/gdb/Branch-Trace-Format.html > > | btrace ]] request in the ProcessGDBRemote and make remote stubs support > > it. > > > > I'm also interested in live tracing for a custom process plugin which > > obtains instruction history in its own way. So, it would be good if a real > > process/thread provides data to the tracing plug-in. > Thanks @tatyana-krasnukha! I think I'll end up doing what you said. And > definitely, step 2 of this project is to trace a live process. Summarizing an offline conversation we had, we'd implement in this class only what is required for tracing a defunct process (i.e. from a json file). Otherwise, any trace logic should be in the main Process class, so that all trace plugins could reuse that logic. Also, during a live debugging session, we don't want to create a new Process object to hold the trace. We'll try to keep a single process to keep the architecture simple. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D88769/new/ https://reviews.llvm.org/D88769 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits