forked from OSchip/llvm-project
parent
ff461fcf07
commit
0c90ef479a
|
@ -15,7 +15,7 @@
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
// Other libraries and framework includes
|
// Other libraries and framework includes
|
||||||
#include "lldb/lldb-forward-rtti.h"
|
#include "lldb/lldb-forward.h"
|
||||||
|
|
||||||
namespace lldb_private {
|
namespace lldb_private {
|
||||||
class DataExtractor;
|
class DataExtractor;
|
||||||
|
|
|
@ -307,7 +307,7 @@ DynamicLoaderPOSIXDYLD::GetStepThroughTrampolinePlan(Thread &thread, bool stop)
|
||||||
return thread_plan_sp;
|
return thread_plan_sp;
|
||||||
|
|
||||||
SymbolContextList target_symbols;
|
SymbolContextList target_symbols;
|
||||||
Target &target = thread.GetProcess().GetTarget();
|
Target &target = thread.GetProcess()->GetTarget();
|
||||||
ModuleList &images = target.GetImages();
|
ModuleList &images = target.GetImages();
|
||||||
|
|
||||||
images.FindSymbolsWithNameAndType(sym_name, eSymbolTypeCode, target_symbols);
|
images.FindSymbolsWithNameAndType(sym_name, eSymbolTypeCode, target_symbols);
|
||||||
|
|
|
@ -128,7 +128,8 @@ PlatformLinux::ResolveExecutable (const FileSpec &exe_file,
|
||||||
{
|
{
|
||||||
error = m_remote_platform_sp->ResolveExecutable (exe_file,
|
error = m_remote_platform_sp->ResolveExecutable (exe_file,
|
||||||
exe_arch,
|
exe_arch,
|
||||||
exe_module_sp);
|
exe_module_sp,
|
||||||
|
NULL);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -152,6 +153,7 @@ PlatformLinux::ResolveExecutable (const FileSpec &exe_file,
|
||||||
0,
|
0,
|
||||||
exe_module_sp,
|
exe_module_sp,
|
||||||
NULL,
|
NULL,
|
||||||
|
NULL,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
if (exe_module_sp->GetObjectFile() == NULL)
|
if (exe_module_sp->GetObjectFile() == NULL)
|
||||||
|
@ -180,6 +182,7 @@ PlatformLinux::ResolveExecutable (const FileSpec &exe_file,
|
||||||
0,
|
0,
|
||||||
exe_module_sp,
|
exe_module_sp,
|
||||||
NULL,
|
NULL,
|
||||||
|
NULL,
|
||||||
NULL);
|
NULL);
|
||||||
// Did we find an executable using one of the
|
// Did we find an executable using one of the
|
||||||
if (error.Success())
|
if (error.Success())
|
||||||
|
@ -367,7 +370,9 @@ PlatformLinux::Attach(ProcessAttachInfo &attach_info,
|
||||||
{
|
{
|
||||||
debugger.GetTargetList().SetSelectedTarget(target);
|
debugger.GetTargetList().SetSelectedTarget(target);
|
||||||
|
|
||||||
process_sp = target->CreateProcess (listener, attach_info.GetProcessPluginName());
|
process_sp = target->CreateProcess (listener,
|
||||||
|
attach_info.GetProcessPluginName(),
|
||||||
|
NULL);
|
||||||
|
|
||||||
if (process_sp)
|
if (process_sp)
|
||||||
error = process_sp->Attach (attach_info);
|
error = process_sp->Attach (attach_info);
|
||||||
|
|
|
@ -31,10 +31,10 @@ using namespace lldb_private;
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// Static functions.
|
// Static functions.
|
||||||
|
|
||||||
Process*
|
ProcessSP
|
||||||
ProcessLinux::CreateInstance(Target& target, Listener &listener)
|
ProcessLinux::CreateInstance(Target &target, Listener &listener, const FileSpec *)
|
||||||
{
|
{
|
||||||
return new ProcessLinux(target, listener);
|
return ProcessSP(new ProcessLinux(target, listener));
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -105,8 +105,10 @@ ProcessLinux::UpdateThreadList(ThreadList &old_thread_list, ThreadList &new_thre
|
||||||
// FIXME: We should be using tid, not pid.
|
// FIXME: We should be using tid, not pid.
|
||||||
assert(m_monitor);
|
assert(m_monitor);
|
||||||
ThreadSP thread_sp (old_thread_list.FindThreadByID (GetID(), false));
|
ThreadSP thread_sp (old_thread_list.FindThreadByID (GetID(), false));
|
||||||
if (!thread_sp)
|
if (!thread_sp) {
|
||||||
thread_sp.reset(new POSIXThread(*this, GetID()));
|
ProcessSP me = this->shared_from_this();
|
||||||
|
thread_sp.reset(new POSIXThread(me, GetID()));
|
||||||
|
}
|
||||||
|
|
||||||
if (log && log->GetMask().Test(POSIX_LOG_VERBOSE))
|
if (log && log->GetMask().Test(POSIX_LOG_VERBOSE))
|
||||||
log->Printf ("ProcessLinux::%s() updated pid = %i", __FUNCTION__, GetID());
|
log->Printf ("ProcessLinux::%s() updated pid = %i", __FUNCTION__, GetID());
|
||||||
|
|
|
@ -30,9 +30,10 @@ public:
|
||||||
//------------------------------------------------------------------
|
//------------------------------------------------------------------
|
||||||
// Static functions.
|
// Static functions.
|
||||||
//------------------------------------------------------------------
|
//------------------------------------------------------------------
|
||||||
static Process*
|
static lldb::ProcessSP
|
||||||
CreateInstance(lldb_private::Target& target,
|
CreateInstance(lldb_private::Target& target,
|
||||||
lldb_private::Listener &listener);
|
lldb_private::Listener &listener,
|
||||||
|
const lldb_private::FileSpec *);
|
||||||
|
|
||||||
static void
|
static void
|
||||||
Initialize();
|
Initialize();
|
||||||
|
|
|
@ -966,6 +966,7 @@ ProcessMonitor::Launch(LaunchArgs *args)
|
||||||
{
|
{
|
||||||
ProcessMonitor *monitor = args->m_monitor;
|
ProcessMonitor *monitor = args->m_monitor;
|
||||||
ProcessLinux &process = monitor->GetProcess();
|
ProcessLinux &process = monitor->GetProcess();
|
||||||
|
lldb::ProcessSP processSP = process.shared_from_this();
|
||||||
const char **argv = args->m_argv;
|
const char **argv = args->m_argv;
|
||||||
const char **envp = args->m_envp;
|
const char **envp = args->m_envp;
|
||||||
const char *stdin_path = args->m_stdin_path;
|
const char *stdin_path = args->m_stdin_path;
|
||||||
|
@ -1104,7 +1105,7 @@ ProcessMonitor::Launch(LaunchArgs *args)
|
||||||
// Update the process thread list with this new thread.
|
// Update the process thread list with this new thread.
|
||||||
// FIXME: should we be letting UpdateThreadList handle this?
|
// FIXME: should we be letting UpdateThreadList handle this?
|
||||||
// FIXME: by using pids instead of tids, we can only support one thread.
|
// FIXME: by using pids instead of tids, we can only support one thread.
|
||||||
inferior.reset(new POSIXThread(process, pid));
|
inferior.reset(new POSIXThread(processSP, pid));
|
||||||
if (log)
|
if (log)
|
||||||
log->Printf ("ProcessMonitor::%s() adding pid = %i", __FUNCTION__, pid);
|
log->Printf ("ProcessMonitor::%s() adding pid = %i", __FUNCTION__, pid);
|
||||||
process.GetThreadList().AddThread(inferior);
|
process.GetThreadList().AddThread(inferior);
|
||||||
|
@ -1166,6 +1167,7 @@ ProcessMonitor::Attach(AttachArgs *args)
|
||||||
|
|
||||||
ProcessMonitor *monitor = args->m_monitor;
|
ProcessMonitor *monitor = args->m_monitor;
|
||||||
ProcessLinux &process = monitor->GetProcess();
|
ProcessLinux &process = monitor->GetProcess();
|
||||||
|
lldb::ProcessSP processSP = process.shared_from_this();
|
||||||
lldb::ThreadSP inferior;
|
lldb::ThreadSP inferior;
|
||||||
LogSP log (ProcessPOSIXLog::GetLogIfAllCategoriesSet (POSIX_LOG_PROCESS));
|
LogSP log (ProcessPOSIXLog::GetLogIfAllCategoriesSet (POSIX_LOG_PROCESS));
|
||||||
|
|
||||||
|
@ -1191,7 +1193,7 @@ ProcessMonitor::Attach(AttachArgs *args)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update the process thread list with the attached thread.
|
// Update the process thread list with the attached thread.
|
||||||
inferior.reset(new POSIXThread(process, pid));
|
inferior.reset(new POSIXThread(processSP, pid));
|
||||||
if (log)
|
if (log)
|
||||||
log->Printf ("ProcessMonitor::%s() adding tid = %i", __FUNCTION__, pid);
|
log->Printf ("ProcessMonitor::%s() adding tid = %i", __FUNCTION__, pid);
|
||||||
process.GetThreadList().AddThread(inferior);
|
process.GetThreadList().AddThread(inferior);
|
||||||
|
|
|
@ -29,10 +29,11 @@
|
||||||
|
|
||||||
#include "UnwindLLDB.h"
|
#include "UnwindLLDB.h"
|
||||||
|
|
||||||
|
using namespace lldb;
|
||||||
using namespace lldb_private;
|
using namespace lldb_private;
|
||||||
|
|
||||||
|
|
||||||
POSIXThread::POSIXThread(Process &process, lldb::tid_t tid)
|
POSIXThread::POSIXThread(ProcessSP &process, lldb::tid_t tid)
|
||||||
: Thread(process, tid),
|
: Thread(process, tid),
|
||||||
m_frame_ap(0)
|
m_frame_ap(0)
|
||||||
{
|
{
|
||||||
|
@ -49,7 +50,8 @@ POSIXThread::~POSIXThread()
|
||||||
ProcessMonitor &
|
ProcessMonitor &
|
||||||
POSIXThread::GetMonitor()
|
POSIXThread::GetMonitor()
|
||||||
{
|
{
|
||||||
ProcessPOSIX &process = static_cast<ProcessPOSIX&>(GetProcess());
|
ProcessSP base = GetProcess();
|
||||||
|
ProcessPOSIX &process = static_cast<ProcessPOSIX&>(*base);
|
||||||
return process.GetMonitor();
|
return process.GetMonitor();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,7 +64,8 @@ POSIXThread::RefreshStateAfterStop()
|
||||||
|
|
||||||
// Let all threads recover from stopping and do any clean up based
|
// Let all threads recover from stopping and do any clean up based
|
||||||
// on the previous thread state (if any).
|
// on the previous thread state (if any).
|
||||||
ProcessPOSIX &process = static_cast<ProcessPOSIX&>(GetProcess());
|
ProcessSP base = GetProcess();
|
||||||
|
ProcessPOSIX &process = static_cast<ProcessPOSIX&>(*base);
|
||||||
process.GetThreadList().RefreshStateAfterStop();
|
process.GetThreadList().RefreshStateAfterStop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -237,7 +240,7 @@ POSIXThread::BreakNotify(const ProcessMessage &message)
|
||||||
lldb::addr_t pc = GetRegisterContext()->GetPC();
|
lldb::addr_t pc = GetRegisterContext()->GetPC();
|
||||||
if (log)
|
if (log)
|
||||||
log->Printf ("POSIXThread::%s () PC=0x%8.8llx", __FUNCTION__, pc);
|
log->Printf ("POSIXThread::%s () PC=0x%8.8llx", __FUNCTION__, pc);
|
||||||
lldb::BreakpointSiteSP bp_site(GetProcess().GetBreakpointSiteList().FindByAddress(pc));
|
lldb::BreakpointSiteSP bp_site(GetProcess()->GetBreakpointSiteList().FindByAddress(pc));
|
||||||
assert(bp_site);
|
assert(bp_site);
|
||||||
lldb::break_id_t bp_id = bp_site->GetID();
|
lldb::break_id_t bp_id = bp_site->GetID();
|
||||||
assert(bp_site && bp_site->ValidForThisThread(this));
|
assert(bp_site && bp_site->ValidForThisThread(this));
|
||||||
|
|
|
@ -29,7 +29,7 @@ class POSIXThread
|
||||||
: public lldb_private::Thread
|
: public lldb_private::Thread
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
POSIXThread(lldb_private::Process &process, lldb::tid_t tid);
|
POSIXThread(lldb::ProcessSP &process, lldb::tid_t tid);
|
||||||
|
|
||||||
virtual ~POSIXThread();
|
virtual ~POSIXThread();
|
||||||
|
|
||||||
|
|
|
@ -500,8 +500,10 @@ ProcessPOSIX::UpdateThreadList(ThreadList &old_thread_list, ThreadList &new_thre
|
||||||
// FIXME: We should be using tid, not pid.
|
// FIXME: We should be using tid, not pid.
|
||||||
assert(m_monitor);
|
assert(m_monitor);
|
||||||
ThreadSP thread_sp (old_thread_list.FindThreadByID (GetID(), false));
|
ThreadSP thread_sp (old_thread_list.FindThreadByID (GetID(), false));
|
||||||
if (!thread_sp)
|
if (!thread_sp) {
|
||||||
thread_sp.reset(new POSIXThread(*this, GetID()));
|
ProcessSP me = this->shared_from_this();
|
||||||
|
thread_sp.reset(new POSIXThread(me, GetID()));
|
||||||
|
}
|
||||||
|
|
||||||
if (log && log->GetMask().Test(POSIX_LOG_VERBOSE))
|
if (log && log->GetMask().Test(POSIX_LOG_VERBOSE))
|
||||||
log->Printf ("ProcessPOSIX::%s() updated pid = %i", __FUNCTION__, GetID());
|
log->Printf ("ProcessPOSIX::%s() updated pid = %i", __FUNCTION__, GetID());
|
||||||
|
|
|
@ -44,44 +44,38 @@ ProcessPOSIXLog::GetLogIfAllCategoriesSet (uint32_t mask)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ProcessPOSIXLog::DisableLog (Args &args, Stream *feedback_strm)
|
ProcessPOSIXLog::DisableLog (const char **args, Stream *feedback_strm)
|
||||||
{
|
{
|
||||||
LogSP log (GetLog ());
|
LogSP log (GetLog ());
|
||||||
if (log)
|
if (log)
|
||||||
{
|
{
|
||||||
uint32_t flag_bits = 0;
|
uint32_t flag_bits = 0;
|
||||||
|
|
||||||
const size_t argc = args.GetArgumentCount ();
|
flag_bits = log->GetMask().Get();
|
||||||
if (argc > 0)
|
for (; args[0]; args++)
|
||||||
{
|
{
|
||||||
flag_bits = log->GetMask().Get();
|
const char *arg = args[0];
|
||||||
for (size_t i = 0; i < argc; ++i)
|
|
||||||
{
|
|
||||||
const char *arg = args.GetArgumentAtIndex (i);
|
|
||||||
|
|
||||||
|
|
||||||
if (::strcasecmp (arg, "all") == 0 ) flag_bits &= ~POSIX_LOG_ALL;
|
if (::strcasecmp (arg, "all") == 0 ) flag_bits &= ~POSIX_LOG_ALL;
|
||||||
else if (::strcasecmp (arg, "async") == 0 ) flag_bits &= ~POSIX_LOG_ASYNC;
|
else if (::strcasecmp (arg, "async") == 0 ) flag_bits &= ~POSIX_LOG_ASYNC;
|
||||||
else if (::strncasecmp (arg, "break", 5) == 0 ) flag_bits &= ~POSIX_LOG_BREAKPOINTS;
|
else if (::strncasecmp (arg, "break", 5) == 0 ) flag_bits &= ~POSIX_LOG_BREAKPOINTS;
|
||||||
else if (::strncasecmp (arg, "comm", 4) == 0 ) flag_bits &= ~POSIX_LOG_COMM;
|
else if (::strncasecmp (arg, "comm", 4) == 0 ) flag_bits &= ~POSIX_LOG_COMM;
|
||||||
else if (::strcasecmp (arg, "default") == 0 ) flag_bits &= ~POSIX_LOG_DEFAULT;
|
else if (::strcasecmp (arg, "default") == 0 ) flag_bits &= ~POSIX_LOG_DEFAULT;
|
||||||
else if (::strcasecmp (arg, "packets") == 0 ) flag_bits &= ~POSIX_LOG_PACKETS;
|
else if (::strcasecmp (arg, "packets") == 0 ) flag_bits &= ~POSIX_LOG_PACKETS;
|
||||||
else if (::strcasecmp (arg, "memory") == 0 ) flag_bits &= ~POSIX_LOG_MEMORY;
|
else if (::strcasecmp (arg, "memory") == 0 ) flag_bits &= ~POSIX_LOG_MEMORY;
|
||||||
else if (::strcasecmp (arg, "data-short") == 0 ) flag_bits &= ~POSIX_LOG_MEMORY_DATA_SHORT;
|
else if (::strcasecmp (arg, "data-short") == 0 ) flag_bits &= ~POSIX_LOG_MEMORY_DATA_SHORT;
|
||||||
else if (::strcasecmp (arg, "data-long") == 0 ) flag_bits &= ~POSIX_LOG_MEMORY_DATA_LONG;
|
else if (::strcasecmp (arg, "data-long") == 0 ) flag_bits &= ~POSIX_LOG_MEMORY_DATA_LONG;
|
||||||
else if (::strcasecmp (arg, "process") == 0 ) flag_bits &= ~POSIX_LOG_PROCESS;
|
else if (::strcasecmp (arg, "process") == 0 ) flag_bits &= ~POSIX_LOG_PROCESS;
|
||||||
else if (::strcasecmp (arg, "ptrace") == 0 ) flag_bits &= ~POSIX_LOG_PTRACE;
|
else if (::strcasecmp (arg, "ptrace") == 0 ) flag_bits &= ~POSIX_LOG_PTRACE;
|
||||||
else if (::strcasecmp (arg, "registers") == 0 ) flag_bits &= ~POSIX_LOG_REGISTERS;
|
else if (::strcasecmp (arg, "registers") == 0 ) flag_bits &= ~POSIX_LOG_REGISTERS;
|
||||||
else if (::strcasecmp (arg, "step") == 0 ) flag_bits &= ~POSIX_LOG_STEP;
|
else if (::strcasecmp (arg, "step") == 0 ) flag_bits &= ~POSIX_LOG_STEP;
|
||||||
else if (::strcasecmp (arg, "thread") == 0 ) flag_bits &= ~POSIX_LOG_THREAD;
|
else if (::strcasecmp (arg, "thread") == 0 ) flag_bits &= ~POSIX_LOG_THREAD;
|
||||||
else if (::strcasecmp (arg, "verbose") == 0 ) flag_bits &= ~POSIX_LOG_VERBOSE;
|
else if (::strcasecmp (arg, "verbose") == 0 ) flag_bits &= ~POSIX_LOG_VERBOSE;
|
||||||
else if (::strncasecmp (arg, "watch", 5) == 0 ) flag_bits &= ~POSIX_LOG_WATCHPOINTS;
|
else if (::strncasecmp (arg, "watch", 5) == 0 ) flag_bits &= ~POSIX_LOG_WATCHPOINTS;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
feedback_strm->Printf("error: unrecognized log category '%s'\n", arg);
|
feedback_strm->Printf("error: unrecognized log category '%s'\n", arg);
|
||||||
ListLogCategories (feedback_strm);
|
ListLogCategories (feedback_strm);
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -95,7 +89,7 @@ ProcessPOSIXLog::DisableLog (Args &args, Stream *feedback_strm)
|
||||||
}
|
}
|
||||||
|
|
||||||
LogSP
|
LogSP
|
||||||
ProcessPOSIXLog::EnableLog (StreamSP &log_stream_sp, uint32_t log_options, Args &args, Stream *feedback_strm)
|
ProcessPOSIXLog::EnableLog (StreamSP &log_stream_sp, uint32_t log_options, const char **args, Stream *feedback_strm)
|
||||||
{
|
{
|
||||||
// Try see if there already is a log - that way we can reuse its settings.
|
// Try see if there already is a log - that way we can reuse its settings.
|
||||||
// We could reuse the log in toto, but we don't know that the stream is the same.
|
// We could reuse the log in toto, but we don't know that the stream is the same.
|
||||||
|
@ -107,17 +101,16 @@ ProcessPOSIXLog::EnableLog (StreamSP &log_stream_sp, uint32_t log_options, Args
|
||||||
// Now make a new log with this stream if one was provided
|
// Now make a new log with this stream if one was provided
|
||||||
if (log_stream_sp)
|
if (log_stream_sp)
|
||||||
{
|
{
|
||||||
log = make_shared<Log>(log_stream_sp);
|
log = LogSP(new Log(log_stream_sp));
|
||||||
GetLog () = log;
|
GetLog () = log;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (log)
|
if (log)
|
||||||
{
|
{
|
||||||
bool got_unknown_category = false;
|
bool got_unknown_category = false;
|
||||||
const size_t argc = args.GetArgumentCount();
|
for (; args[0]; args++)
|
||||||
for (size_t i=0; i<argc; ++i)
|
|
||||||
{
|
{
|
||||||
const char *arg = args.GetArgumentAtIndex(i);
|
const char *arg = args[0];
|
||||||
|
|
||||||
if (::strcasecmp (arg, "all") == 0 ) flag_bits |= POSIX_LOG_ALL;
|
if (::strcasecmp (arg, "all") == 0 ) flag_bits |= POSIX_LOG_ALL;
|
||||||
else if (::strcasecmp (arg, "async") == 0 ) flag_bits |= POSIX_LOG_ASYNC;
|
else if (::strcasecmp (arg, "async") == 0 ) flag_bits |= POSIX_LOG_ASYNC;
|
||||||
|
|
|
@ -54,11 +54,11 @@ public:
|
||||||
GetLogIfAllCategoriesSet(uint32_t mask = 0);
|
GetLogIfAllCategoriesSet(uint32_t mask = 0);
|
||||||
|
|
||||||
static void
|
static void
|
||||||
DisableLog (lldb_private::Args &args, lldb_private::Stream *feedback_strm);
|
DisableLog (const char **args, lldb_private::Stream *feedback_strm);
|
||||||
|
|
||||||
static lldb::LogSP
|
static lldb::LogSP
|
||||||
EnableLog (lldb::StreamSP &log_stream_sp, uint32_t log_options,
|
EnableLog (lldb::StreamSP &log_stream_sp, uint32_t log_options,
|
||||||
lldb_private::Args &args, lldb_private::Stream *feedback_strm);
|
const char **args, lldb_private::Stream *feedback_strm);
|
||||||
|
|
||||||
static void
|
static void
|
||||||
ListLogCategories (lldb_private::Stream *strm);
|
ListLogCategories (lldb_private::Stream *strm);
|
||||||
|
|
|
@ -364,7 +364,8 @@ RegisterContext_i386::~RegisterContext_i386()
|
||||||
ProcessMonitor &
|
ProcessMonitor &
|
||||||
RegisterContext_i386::GetMonitor()
|
RegisterContext_i386::GetMonitor()
|
||||||
{
|
{
|
||||||
ProcessPOSIX *process = static_cast<ProcessPOSIX*>(CalculateProcess());
|
ProcessSP base = CalculateProcess();
|
||||||
|
ProcessPOSIX *process = static_cast<ProcessPOSIX*>(base.get());
|
||||||
return process->GetMonitor();
|
return process->GetMonitor();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -434,7 +434,8 @@ RegisterContext_x86_64::~RegisterContext_x86_64()
|
||||||
ProcessMonitor &
|
ProcessMonitor &
|
||||||
RegisterContext_x86_64::GetMonitor()
|
RegisterContext_x86_64::GetMonitor()
|
||||||
{
|
{
|
||||||
ProcessPOSIX *process = static_cast<ProcessPOSIX*>(CalculateProcess());
|
ProcessSP base = CalculateProcess();
|
||||||
|
ProcessPOSIX *process = static_cast<ProcessPOSIX*>(base.get());
|
||||||
return process->GetMonitor();
|
return process->GetMonitor();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@ StopInfoMachException::GetDescription ()
|
||||||
{
|
{
|
||||||
ExecutionContext exe_ctx (m_thread.shared_from_this());
|
ExecutionContext exe_ctx (m_thread.shared_from_this());
|
||||||
Target *target = exe_ctx.GetTargetPtr();
|
Target *target = exe_ctx.GetTargetPtr();
|
||||||
const llvm::Triple::ArchType cpu = target ? target->GetArchitecture().GetMachine() : llvm::Triple::InvalidArch;
|
const llvm::Triple::ArchType cpu = target ? target->GetArchitecture().GetMachine() : llvm::Triple::UnknownArch;
|
||||||
|
|
||||||
const char *exc_desc = NULL;
|
const char *exc_desc = NULL;
|
||||||
const char *code_label = "code";
|
const char *code_label = "code";
|
||||||
|
@ -257,7 +257,7 @@ StopInfoMachException::CreateStopReasonWithMachException
|
||||||
{
|
{
|
||||||
ExecutionContext exe_ctx (thread.shared_from_this());
|
ExecutionContext exe_ctx (thread.shared_from_this());
|
||||||
Target *target = exe_ctx.GetTargetPtr();
|
Target *target = exe_ctx.GetTargetPtr();
|
||||||
const llvm::Triple::ArchType cpu = target ? target->GetArchitecture().GetMachine() : llvm::Triple::InvalidArch;
|
const llvm::Triple::ArchType cpu = target ? target->GetArchitecture().GetMachine() : llvm::Triple::UnknownArch;
|
||||||
|
|
||||||
switch (exc_type)
|
switch (exc_type)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue