[Lldb-commits] [PATCH] D118484: [lldb/test] Fix TestScriptedProcess.py timeout on x86_64

Med Ismail Bennani via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Fri Jan 28 11:13:58 PST 2022


mib marked 2 inline comments as done.
mib added inline comments.


================
Comment at: lldb/test/API/functionalities/scripted_process/invalid_scripted_process.py:57
         return { "type": lldb.eStopReasonSignal, "data": {
-            "signal": signal.SIGINT
+            "signal": signal.SIGTRAP
         } }
----------------
JDevlieghere wrote:
> What's the motivation from switching from SIGINT to SIGTRAP?
I don't think this is very important, but reporting it as a SIGTRAP is more in line with what debugserver does for breakpoints.


================
Comment at: lldb/test/API/functionalities/scripted_process/stack_core_scripted_process.py:128-137
+            selected_thread_idx = self.scripted_process.get_selected_thread_index()
+            if selected_thread_idx == self.corefile_thread.GetIndexID():
+                if 'arm64' in self.scripted_process.arch:
+                    stop_reason["type"] = lldb.eStopReasonException
                     stop_reason["data"]["desc"] = self.corefile_thread.GetStopDescription(100)
+                elif self.scripted_process.arch == 'x86_64':
+                    stop_reason["type"] = lldb.eStopReasonSignal
----------------
JDevlieghere wrote:
> Can you remind me why we can't read this information from the thread in the core file? 
Besides on arm, we don't save any breakpoint info in the core file, so all of the core file threads reports a `eStopReasonNone`. So when I try to emulate the core file process from a Scripted Process, the scripted process never stops because none of its threads has a stop reason. That's why we have to fake a SIGTRAP for x86_64.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D118484/new/

https://reviews.llvm.org/D118484



More information about the lldb-commits mailing list