diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2017-12-18 20:12:36 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2017-12-18 20:12:36 +0000 | 
| commit | ef5d0b5e97ec8e6fa395d377b09aa7755e345b4f (patch) | |
| tree | 27916256fdeeb57d10d2f3d6948be5d71a703215 /source/Plugins/Process/FreeBSD/FreeBSDThread.cpp | |
| parent | 76e0736e7fcfeb179779e49c05604464b1ccd704 (diff) | |
Notes
Diffstat (limited to 'source/Plugins/Process/FreeBSD/FreeBSDThread.cpp')
| -rw-r--r-- | source/Plugins/Process/FreeBSD/FreeBSDThread.cpp | 29 | 
1 files changed, 9 insertions, 20 deletions
| diff --git a/source/Plugins/Process/FreeBSD/FreeBSDThread.cpp b/source/Plugins/Process/FreeBSD/FreeBSDThread.cpp index bd8e5abe2255f..e6557c2d58e03 100644 --- a/source/Plugins/Process/FreeBSD/FreeBSDThread.cpp +++ b/source/Plugins/Process/FreeBSD/FreeBSDThread.cpp @@ -375,6 +375,7 @@ void FreeBSDThread::Notify(const ProcessMessage &message) {      LimboNotify(message);      break; +  case ProcessMessage::eCrashMessage:    case ProcessMessage::eSignalMessage:      SignalNotify(message);      break; @@ -395,10 +396,6 @@ void FreeBSDThread::Notify(const ProcessMessage &message) {      WatchNotify(message);      break; -  case ProcessMessage::eCrashMessage: -    CrashNotify(message); -    break; -    case ProcessMessage::eExecMessage:      ExecNotify(message);      break; @@ -577,7 +574,14 @@ void FreeBSDThread::LimboNotify(const ProcessMessage &message) {  void FreeBSDThread::SignalNotify(const ProcessMessage &message) {    int signo = message.GetSignal(); -  SetStopInfo(StopInfo::CreateStopReasonWithSignal(*this, signo)); +  if (message.GetKind() == ProcessMessage::eCrashMessage) { +    std::string stop_description = GetCrashReasonString( +        message.GetCrashReason(), message.GetFaultAddress()); +    SetStopInfo(StopInfo::CreateStopReasonWithSignal( +        *this, signo, stop_description.c_str())); +  } else { +    SetStopInfo(StopInfo::CreateStopReasonWithSignal(*this, signo)); +  }  }  void FreeBSDThread::SignalDeliveredNotify(const ProcessMessage &message) { @@ -585,21 +589,6 @@ void FreeBSDThread::SignalDeliveredNotify(const ProcessMessage &message) {    SetStopInfo(StopInfo::CreateStopReasonWithSignal(*this, signo));  } -void FreeBSDThread::CrashNotify(const ProcessMessage &message) { -  // FIXME: Update stop reason as per bugzilla 14598 -  int signo = message.GetSignal(); - -  assert(message.GetKind() == ProcessMessage::eCrashMessage); - -  Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_THREAD)); -  if (log) -    log->Printf("FreeBSDThread::%s () signo = %i, reason = '%s'", __FUNCTION__, -                signo, message.PrintCrashReason()); - -  SetStopInfo(lldb::StopInfoSP(new POSIXCrashStopInfo( -      *this, signo, message.GetCrashReason(), message.GetFaultAddress()))); -} -  unsigned FreeBSDThread::GetRegisterIndexFromOffset(unsigned offset) {    unsigned reg = LLDB_INVALID_REGNUM;    ArchSpec arch = HostInfo::GetArchitecture(); | 
