[Lldb-commits] [PATCH] D68096: ProcessMinidump: inject SIGSTOP on Linux if no thread has a signal
Joseph Tremoulet via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Fri Sep 27 12:09:43 PDT 2019
JosephTremoulet updated this revision to Diff 222225.
JosephTremoulet added a comment.
- Use accessor for m_unix_signals_sp
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D68096/new/
https://reviews.llvm.org/D68096
Files:
lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp
Index: lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp
===================================================================
--- lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp
+++ lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp
@@ -215,6 +215,10 @@
m_thread_list = m_minidump_parser->GetThreads();
m_active_exception = m_minidump_parser->GetExceptionStream();
+
+ if (arch.GetTriple().isOSLinux())
+ SetUnixSignals(UnixSignals::Create(GetArchitecture()));
+
ReadModuleList();
llvm::Optional<lldb::pid_t> pid = m_minidump_parser->GetPid();
@@ -234,6 +238,7 @@
Status ProcessMinidump::DoDestroy() { return Status(); }
void ProcessMinidump::RefreshStateAfterStop() {
+
if (!m_active_exception)
return;
@@ -250,8 +255,16 @@
ArchSpec arch = GetArchitecture();
if (arch.GetTriple().getOS() == llvm::Triple::Linux) {
+ uint32_t signo = m_active_exception->exception_record.exception_code;
+
+ if (signo == 0) {
+ // Artifically inject a SIGSTOP so that we'll find a stop reason
+ // when we process the stop event.
+ signo = GetUnixSignals()->GetSignalNumberFromName("SIGSTOP");
+ }
+
stop_info = StopInfo::CreateStopReasonWithSignal(
- *stop_thread, m_active_exception->exception_record.exception_code);
+ *stop_thread, signo);
} else if (arch.GetTriple().getVendor() == llvm::Triple::Apple) {
stop_info = StopInfoMachException::CreateStopReasonWithMachException(
*stop_thread, m_active_exception->exception_record.exception_code, 2,
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D68096.222225.patch
Type: text/x-patch
Size: 1556 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20190927/2315a9ce/attachment.bin>
More information about the lldb-commits
mailing list