Update the qfThreadInfo handler to report threads of all debugged
processes and include PIDs when in multiprocess mode.
Sponsored by: The FreeBSD Foundation
Differential D128152
[lldb] [llgs] Support multiprocess in qfThreadInfo mgorny on Jun 19 2022, 10:20 PM. Authored by
Details Update the qfThreadInfo handler to report threads of all debugged Sponsored by: The FreeBSD Foundation
Diff Detail
Event Timeline
Comment Actions Simplify to use a single loop for both multiprocess and non-multiprocess modes. Replace the static function with include_pid with a class method, to prepare for adding a new helper to print PID+TID. Comment Actions Just FYI, this commit appears to cause lldb//test/API/commands/target/auto-install-main-executable/TestAutoInstallMainExecutable.py to fail. The error I'm seeing is: Traceback (most recent call last): File "../lldb/test/API/commands/target/auto-install-main-executable/TestAutoInstallMainExecutable.py", line 72, in test_target_auto_install_main_executable self.expect("process launch", substrs=["exited with status = 74"]) File ".../lldb/packages/Python/lldbsuite/test/lldbtest.py", line 2295, in expect self.runCmd( File ".../lldb/packages/Python/lldbsuite/test/lldbtest.py", line 1998, in runCmd self.assertTrue(self.res.Succeeded(), AssertionError: False is not True : Command 'process launch Comment Actions Thanks for the notice. I was pretty sure it failed to me prior to my changes but it is possible that I read the output wrong, so I'm going to check it now. Comment Actions I'm sorry, it is indeed my fault. I'm going to try to fix it shortly, and if I don't manage to figure it out, I'm going to revert this and the commits depending on it. Comment Actions I've reverted the code changes and marked my new tests xfail. I will attempt to find the problem in the new code later. Once again, I'm sorry for missing this. Comment Actions Ok, apparently the changes that's breaking this is replacing the OK response with l when there's no debugged process. |
without multiprocess extensions, we should never have more than one process, right? Could we just unconditionally use the multiprocess loop here (perhaps with an assert(m_debugged_processes.size() == 1 || multiprocess)) ?