Files
clang-p2996/lldb/source/Plugins/Process/Utility/StopInfoMachException.h
Jim Ingham ce553d885a Enhanced the ObjC DynamicCheckerFunction to test for "object responds to selector" as well as
"object borked"...  Also made the error when the checker fails reflect this fact rather than
report a crash at 0x0.

Also a little cleanup:
- StopInfoMachException had a redundant copy of the description string.
- ThreadPlanCallFunction had a redundant copy of the thread, and had a 
copy of the process that it didn't really need.

llvm-svn: 143419
2011-11-01 02:46:54 +00:00

76 lines
2.2 KiB
C++

//===-- StopInfoMachException.h ---------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#ifndef liblldb_StopInfoMachException_h_
#define liblldb_StopInfoMachException_h_
// C Includes
// C++ Includes
#include <string>
// Other libraries and framework includes
// Project includes
#include "lldb/Target/StopInfo.h"
namespace lldb_private {
class StopInfoMachException : public StopInfo
{
public:
//------------------------------------------------------------------
// Constructors and Destructors
//------------------------------------------------------------------
StopInfoMachException (Thread &thread,
uint32_t exc_type,
uint32_t exc_data_count,
uint64_t exc_code,
uint64_t exc_subcode) :
StopInfo (thread, exc_type),
m_exc_data_count (exc_data_count),
m_exc_code (exc_code),
m_exc_subcode (exc_subcode)
{
}
virtual ~StopInfoMachException()
{
}
virtual lldb::StopReason
GetStopReason () const
{
return lldb::eStopReasonException;
}
virtual const char *
GetDescription ();
// Since some mach exceptions will be reported as breakpoints, signals,
// or trace, we use this static accessor which will translate the mach
// exception into the correct StopInfo.
static lldb::StopInfoSP
CreateStopReasonWithMachException (Thread &thread,
uint32_t exc_type,
uint32_t exc_data_count,
uint64_t exc_code,
uint64_t exc_sub_code,
uint64_t exc_sub_sub_code);
protected:
uint32_t m_exc_data_count;
uint64_t m_exc_code;
uint64_t m_exc_subcode;
};
} // namespace lldb_private
#endif // liblldb_StopInfoMachException_h_