static ConstString &GetStaticBroadcasterClass();
- static constexpr llvm::StringRef AttachSynchronousHijackListenerName =
- "lldb.internal.Process.AttachSynchronous.hijack";
- static constexpr llvm::StringRef LaunchSynchronousHijackListenerName =
- "lldb.internal.Process.LaunchSynchronous.hijack";
- static constexpr llvm::StringRef ResumeSynchronousHijackListenerName =
- "lldb.internal.Process.ResumeSynchronous.hijack";
-
ConstString &GetBroadcasterClass() const override {
return GetStaticBroadcasterClass();
}
return error;
}
+static const char *g_resume_sync_name = "lldb.Process.ResumeSynchronous.hijack";
+
Status Process::ResumeSynchronous(Stream *stream) {
Log *log(GetLog(LLDBLog::State | LLDBLog::Process));
LLDB_LOGF(log, "Process::ResumeSynchronous -- locking run lock");
}
ListenerSP listener_sp(
- Listener::MakeListener(ResumeSynchronousHijackListenerName.data()));
+ Listener::MakeListener(g_resume_sync_name));
HijackProcessEvents(listener_sp);
Status error = PrivateResume();
bool Process::StateChangedIsExternallyHijacked() {
if (IsHijackedForEvent(eBroadcastBitStateChanged)) {
- llvm::StringRef hijacking_name = GetHijackingListenerName();
- if (hijacking_name.starts_with("lldb.internal"))
+ const char *hijacking_name = GetHijackingListenerName();
+ if (hijacking_name &&
+ strcmp(hijacking_name, g_resume_sync_name))
return true;
}
return false;
bool Process::StateChangedIsHijackedForSynchronousResume() {
if (IsHijackedForEvent(eBroadcastBitStateChanged)) {
- llvm::StringRef hijacking_name = GetHijackingListenerName();
- if (hijacking_name == ResumeSynchronousHijackListenerName)
+ const char *hijacking_name = GetHijackingListenerName();
+ if (hijacking_name &&
+ strcmp(hijacking_name, g_resume_sync_name) == 0)
return true;
}
return false;
// its own hijacking listener or if the process is created by the target
// manually, without the platform).
if (!launch_info.GetHijackListener())
- launch_info.SetHijackListener(Listener::MakeListener(
- Process::LaunchSynchronousHijackListenerName.data()));
+ launch_info.SetHijackListener(
+ Listener::MakeListener("lldb.Target.Launch.hijack"));
// If we're not already connected to the process, and if we have a platform
// that can launch a process for debugging, go ahead and do that here.
ListenerSP hijack_listener_sp;
const bool async = attach_info.GetAsync();
if (!async) {
- hijack_listener_sp = Listener::MakeListener(
- Process::AttachSynchronousHijackListenerName.data());
+ hijack_listener_sp =
+ Listener::MakeListener("lldb.Target.Attach.attach.hijack");
attach_info.SetHijackListener(hijack_listener_sp);
}