[Lldb-commits] [PATCH] D146263: [lldb] Move UnixSignals creation into Platform plugins

Alex Langford via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Wed Mar 22 16:22:22 PDT 2023


bulbazord added inline comments.


================
Comment at: lldb/source/Target/UnixSignals.cpp:39
+  // If we have no host platform, be resilient and use default UnixSignals.
+  if (!host_platform_sp)
+    s_unix_signals_sp = std::make_shared<UnixSignals>();
----------------
bulbazord wrote:
> rupprecht wrote:
> > bulbazord wrote:
> > > rupprecht wrote:
> > > > I think the divergence might be happening here -- the host platform is null here, so we get UnixSignals instead of the subcode from LinuxSignals.
> > > Why might the HostPlatform be nullptr? I assume you're debugging a binary built for some Linux distro on some Linux machine.
> > Yes, this is a local debugging session of a linux binary running on a linux machine. But it seems from my prodding around that `lldb` calls `Platform::SetHostPlatform()` (via `PlatformLinux::Initialize()`, but `lldb-server` isn't, and `lldb-server` is the thing that supposed to be returning the subcode details.
> ```
>  * frame #0: 0x0000aaaaab72dfe0 lldb-server`lldb_private::Platform::GetHostPlatform() at Platform.cpp:137:49
>     frame #1: 0x0000aaaaab83f6e8 lldb-server`lldb_private::UnixSignals::CreateForHost() at UnixSignals.cpp:36:27
>     frame #2: 0x0000aaaaab569590 lldb-server`GetCrashReasonString[abi:cxx11](info=0x0000ffffffffd9e0) at CrashReason.cpp:25:7
>     frame #3: 0x0000aaaaab48e084 lldb-server`lldb_private::process_linux::NativeThreadLinux::SetStoppedBySignal(this=0x0000aaaab5255180, signo=11, info=0x0000ffffffffd9e0) at NativeThreadLinux.cpp:297:28
> ```
> Yep, that makes sense to me. I'll work on this, thanks for letting me know about this.
D146668


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D146263



More information about the lldb-commits mailing list