walter-erquinigo wrote:

> At least one test fails: `./bin/lldb -o 'trace load -v 
> /llvm/lldb/test/API/commands/trace/intelpt-trace/trace_2threads.json'` 
> crashes with an assertion failure on TraceIntelPTBundleLoader.cpp:127 
> (`*process_sp` is a null pointer dereference).
> 
> Do you know why `process_sp` would be null in this case? I added some extra 
> assertions and it looks like `target_sp->m_process_sp` is null after the call 
> to `ProcessTrace::CreateInstance` on line 111.

It seems that the issue is that we still need to make `Target::m_process_sp` 
point to the newly created process...

So, let's give something else a try:

Return that code to its original form

```
ProcessSP process_sp = target_sp->CreateProcess(
    /*listener*/ nullptr, "trace",
    /*crash_file*/ nullptr,
    /*can_connect*/ false);
```

If that passes the test, then there's nothing else to do and we are good to go.
If that doesn't work, then we need to additional add the line 
`LLDB_PLUGIN_DEFINE(ProcessTrace)` before any function declaration in the 
ProcessTrace.cpp file. That `LLDB_PLUGIN_DEFINE` define will register the 
ProcessTrace process plugin with that "trace", which will be searchable by 
`target_sp->CreateProcess`, who is looking for a trace process called "trace".

https://github.com/llvm/llvm-project/pull/77252
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to