forked from OSchip/llvm-project
Enabled extra warnings and fixed a bunch of small issues.
llvm-svn: 124250
This commit is contained in:
parent
3ae681eb12
commit
1a65ae11bd
|
@ -46,7 +46,7 @@ public:
|
|||
/// @result
|
||||
/// Returns breakpoint id.
|
||||
//------------------------------------------------------------------
|
||||
virtual lldb::break_id_t
|
||||
lldb::break_id_t
|
||||
Add (lldb::BreakpointSP& bp_sp, bool notify);
|
||||
|
||||
//------------------------------------------------------------------
|
||||
|
|
|
@ -38,6 +38,7 @@ class BreakpointLocationList
|
|||
friend class Breakpoint;
|
||||
|
||||
public:
|
||||
virtual
|
||||
~BreakpointLocationList();
|
||||
|
||||
//------------------------------------------------------------------
|
||||
|
|
|
@ -720,10 +720,10 @@ public:
|
|||
GetU8 ( uint32_t *offset_ptr) const;
|
||||
|
||||
uint8_t
|
||||
GetU8_unchecked ( uint32_t *offset_ptr) const
|
||||
GetU8_unchecked (uint32_t *offset_ptr) const
|
||||
{
|
||||
uint8_t val = m_start[*offset_ptr];
|
||||
*offset_ptr += sizeof(val);
|
||||
*offset_ptr += 1;
|
||||
return val;
|
||||
}
|
||||
|
||||
|
|
|
@ -82,6 +82,7 @@ public:
|
|||
//------------------------------------------------------------------
|
||||
/// Destructor.
|
||||
//------------------------------------------------------------------
|
||||
virtual
|
||||
~Module ();
|
||||
|
||||
//------------------------------------------------------------------
|
||||
|
|
|
@ -21,6 +21,8 @@ namespace lldb_private {
|
|||
class PluginInterface
|
||||
{
|
||||
public:
|
||||
virtual
|
||||
~PluginInterface () {}
|
||||
|
||||
virtual const char *
|
||||
GetPluginName() = 0;
|
||||
|
|
|
@ -72,6 +72,9 @@ protected:
|
|||
FILE* m_file; ///< File handle to dump to.
|
||||
bool m_close_file;
|
||||
std::string m_path_name;
|
||||
|
||||
private:
|
||||
DISALLOW_COPY_AND_ASSIGN (StreamFile);
|
||||
};
|
||||
|
||||
} // namespace lldb_private
|
||||
|
|
|
@ -63,8 +63,11 @@ public:
|
|||
Value(double v);
|
||||
Value(long double v);
|
||||
Value(const uint8_t *bytes, int len);
|
||||
Value(const Value &v);
|
||||
Value(const Value &rhs);
|
||||
|
||||
Value &
|
||||
operator=(const Value &rhs);
|
||||
|
||||
Value *
|
||||
CreateProxy();
|
||||
|
||||
|
@ -145,10 +148,16 @@ protected:
|
|||
class ValueList
|
||||
{
|
||||
public:
|
||||
ValueList () {}
|
||||
ValueList () :
|
||||
m_values()
|
||||
{
|
||||
}
|
||||
|
||||
ValueList (const ValueList &rhs);
|
||||
|
||||
~ValueList () {}
|
||||
~ValueList ()
|
||||
{
|
||||
}
|
||||
|
||||
const ValueList & operator= (const ValueList &rhs);
|
||||
|
||||
|
|
|
@ -158,4 +158,4 @@ private:
|
|||
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -153,4 +153,4 @@ private:
|
|||
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -255,4 +255,4 @@ struct NameSearchContext {
|
|||
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -469,7 +469,9 @@ private:
|
|||
//----------------------------------------------------------------------
|
||||
/// The following values should not live beyond parsing
|
||||
//----------------------------------------------------------------------
|
||||
struct ParserVars {
|
||||
class ParserVars
|
||||
{
|
||||
public:
|
||||
ParserVars() :
|
||||
m_exe_ctx(NULL),
|
||||
m_sym_ctx(),
|
||||
|
@ -493,6 +495,8 @@ private:
|
|||
ClangPersistentVariables *m_persistent_vars; ///< The persistent variables for the process.
|
||||
bool m_enable_lookups; ///< Set to true during parsing if we have found the first "$__lldb" name.
|
||||
bool m_ignore_lookups; ///< True during an import when we should be ignoring type lookups.
|
||||
private:
|
||||
DISALLOW_COPY_AND_ASSIGN (ParserVars);
|
||||
};
|
||||
|
||||
std::auto_ptr<ParserVars> m_parser_vars;
|
||||
|
|
|
@ -89,7 +89,9 @@ public:
|
|||
//----------------------------------------------------------------------
|
||||
/// The following values should not live beyond parsing
|
||||
//----------------------------------------------------------------------
|
||||
struct ParserVars {
|
||||
class ParserVars
|
||||
{
|
||||
public:
|
||||
|
||||
ParserVars() :
|
||||
m_parser_type(),
|
||||
|
@ -103,6 +105,9 @@ public:
|
|||
const clang::NamedDecl *m_named_decl; ///< The Decl corresponding to this variable
|
||||
llvm::Value *m_llvm_value; ///< The IR value corresponding to this variable; usually a GlobalValue
|
||||
lldb_private::Value *m_lldb_value; ///< The value found in LLDB for this variable
|
||||
|
||||
private:
|
||||
DISALLOW_COPY_AND_ASSIGN (ParserVars);
|
||||
};
|
||||
//----------------------------------------------------------------------
|
||||
/// Make this variable usable by the parser by allocating space for
|
||||
|
|
|
@ -189,6 +189,8 @@ public:
|
|||
bool
|
||||
Evaluate (ExecutionContextScope *exe_scope,
|
||||
clang::ASTContext *ast_context,
|
||||
ClangExpressionVariableList *expr_locals,
|
||||
ClangExpressionDeclMap *decl_map,
|
||||
lldb::addr_t loclist_base_load_addr,
|
||||
const Value* initial_value_ptr,
|
||||
Value& result,
|
||||
|
@ -201,6 +203,8 @@ public:
|
|||
bool
|
||||
Evaluate (ExecutionContext *exe_ctx,
|
||||
clang::ASTContext *ast_context,
|
||||
ClangExpressionVariableList *expr_locals,
|
||||
ClangExpressionDeclMap *decl_map,
|
||||
RegisterContext *reg_ctx,
|
||||
lldb::addr_t loclist_base_load_addr,
|
||||
const Value* initial_value_ptr,
|
||||
|
@ -269,10 +273,10 @@ public:
|
|||
static bool
|
||||
Evaluate (ExecutionContext *exe_ctx,
|
||||
clang::ASTContext *ast_context,
|
||||
const DataExtractor& opcodes,
|
||||
ClangExpressionVariableList *expr_locals,
|
||||
ClangExpressionDeclMap *decl_map,
|
||||
RegisterContext *reg_ctx,
|
||||
const DataExtractor& opcodes,
|
||||
const uint32_t offset,
|
||||
const uint32_t length,
|
||||
const uint32_t reg_set,
|
||||
|
@ -331,8 +335,7 @@ protected:
|
|||
lldb::addr_t m_loclist_slide; ///< A value used to slide the location list offsets so that
|
||||
///< they are relative to the object that owns the location list
|
||||
///< (the function for frame base and variable location lists)
|
||||
ClangExpressionVariableList *m_expr_locals; ///< The locals used by this expression. See Evaluate()
|
||||
ClangExpressionDeclMap *m_decl_map; ///< The external variables used by this expression. See Evaluate()
|
||||
|
||||
};
|
||||
|
||||
} // namespace lldb_private
|
||||
|
|
|
@ -589,7 +589,7 @@ public:
|
|||
CreateMemberPointerType (lldb::clang_type_t clang_pointee_type,
|
||||
lldb::clang_type_t clang_class_type);
|
||||
|
||||
size_t
|
||||
uint32_t
|
||||
GetPointerBitSize ();
|
||||
|
||||
static bool
|
||||
|
|
|
@ -46,7 +46,7 @@ protected:
|
|||
{
|
||||
}
|
||||
|
||||
~ClangASTType();
|
||||
virtual ~ClangASTType();
|
||||
|
||||
const ClangASTType &
|
||||
operator= (const ClangASTType &atb)
|
||||
|
@ -75,10 +75,10 @@ public:
|
|||
static ConstString
|
||||
GetClangTypeName (lldb::clang_type_t clang_type);
|
||||
|
||||
uint64_t
|
||||
uint32_t
|
||||
GetClangTypeBitWidth ();
|
||||
|
||||
static uint64_t
|
||||
static uint32_t
|
||||
GetClangTypeBitWidth (clang::ASTContext *ast_context, lldb::clang_type_t opaque_clang_qual_type);
|
||||
|
||||
size_t
|
||||
|
|
|
@ -93,7 +93,7 @@ public:
|
|||
uint32_t
|
||||
GetSiblingIndex () const;
|
||||
|
||||
uint32_t
|
||||
lldb::addr_t
|
||||
GetByteSize () const { return m_addr_range.GetByteSize(); }
|
||||
|
||||
lldb::SymbolType
|
||||
|
|
|
@ -71,6 +71,9 @@ namespace lldb_private {
|
|||
class SymbolContextScope
|
||||
{
|
||||
public:
|
||||
virtual
|
||||
~SymbolContextScope () {}
|
||||
|
||||
//------------------------------------------------------------------
|
||||
/// Reconstruct the object's symbolc context into \a sc.
|
||||
///
|
||||
|
|
|
@ -29,7 +29,7 @@ public:
|
|||
TaggedASTType () :
|
||||
ClangASTType() { }
|
||||
|
||||
~TaggedASTType() { }
|
||||
virtual ~TaggedASTType() { }
|
||||
|
||||
TaggedASTType<C> &operator= (const TaggedASTType<C> &tw)
|
||||
{
|
||||
|
|
|
@ -48,8 +48,8 @@ public:
|
|||
const ConstString &name,
|
||||
uint32_t byte_size,
|
||||
SymbolContextScope *context,
|
||||
uintptr_t encoding_uid,
|
||||
EncodingDataType encoding_type,
|
||||
lldb::user_id_t encoding_uid,
|
||||
EncodingDataType encoding_uid_type,
|
||||
const Declaration& decl,
|
||||
lldb::clang_type_t clang_qual_type,
|
||||
ResolveState clang_type_resolve_state);
|
||||
|
@ -57,6 +57,8 @@ public:
|
|||
// This makes an invalid type. Used for functions that return a Type when they
|
||||
// get an error.
|
||||
Type();
|
||||
|
||||
Type (const Type &rhs);
|
||||
|
||||
const Type&
|
||||
operator= (const Type& rhs);
|
||||
|
@ -88,7 +90,7 @@ public:
|
|||
const ConstString&
|
||||
GetName();
|
||||
|
||||
uint64_t
|
||||
uint32_t
|
||||
GetByteSize();
|
||||
|
||||
uint32_t
|
||||
|
@ -234,8 +236,8 @@ protected:
|
|||
SymbolFile *m_symbol_file;
|
||||
SymbolContextScope *m_context; // The symbol context in which this type is defined
|
||||
Type *m_encoding_type;
|
||||
EncodingDataType m_encoding_uid_type;
|
||||
uint32_t m_encoding_uid;
|
||||
EncodingDataType m_encoding_uid_type;
|
||||
uint32_t m_byte_size;
|
||||
Declaration m_decl;
|
||||
lldb::clang_type_t m_clang_type;
|
||||
|
@ -244,7 +246,8 @@ protected:
|
|||
Type *
|
||||
GetEncodingType ();
|
||||
|
||||
bool ResolveClangType (ResolveState clang_type_resolve_state);
|
||||
bool
|
||||
ResolveClangType (ResolveState clang_type_resolve_state);
|
||||
};
|
||||
|
||||
} // namespace lldb_private
|
||||
|
|
|
@ -51,6 +51,8 @@ private:
|
|||
UnwindAssemblyProfiler* m_assembly_profiler;
|
||||
|
||||
DWARFCallFrameInfo* m_eh_frame;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN (UnwindTable);
|
||||
};
|
||||
|
||||
} // namespace lldb_private
|
||||
|
|
|
@ -39,6 +39,9 @@ namespace lldb_private {
|
|||
class ExecutionContextScope
|
||||
{
|
||||
public:
|
||||
virtual
|
||||
~ExecutionContextScope () {}
|
||||
|
||||
virtual Target *
|
||||
CalculateTarget () = 0;
|
||||
|
||||
|
|
|
@ -48,6 +48,11 @@ public:
|
|||
|
||||
private:
|
||||
virtual void on_zero_shared();
|
||||
|
||||
// Outlaw copy constructor and assignment operator to keep effictive C++
|
||||
// warnings down to a minumum
|
||||
shared_ptr_pointer (const shared_ptr_pointer &);
|
||||
shared_ptr_pointer & operator=(const shared_ptr_pointer &);
|
||||
};
|
||||
|
||||
template <class T>
|
||||
|
@ -169,7 +174,7 @@ SharingPtr<T>::SharingPtr()
|
|||
template<class T>
|
||||
template<class Y>
|
||||
SharingPtr<T>::SharingPtr(Y* p)
|
||||
: ptr_(p)
|
||||
: ptr_(p), cntrl_(0)
|
||||
{
|
||||
std::auto_ptr<Y> hold(p);
|
||||
typedef imp::shared_ptr_pointer<Y*> _CntrlBlk;
|
||||
|
|
|
@ -2874,8 +2874,15 @@
|
|||
__STDC_LIMIT_MACROS,
|
||||
LLDB_CONFIGURATION_DEBUG,
|
||||
);
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = NO;
|
||||
GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_EFFECTIVE_CPLUSPLUS_VIOLATIONS = NO;
|
||||
GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES;
|
||||
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES;
|
||||
GCC_WARN_MISSING_PARENTHESES = YES;
|
||||
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
|
||||
GCC_WARN_UNUSED_VALUE = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
PREBINDING = NO;
|
||||
|
@ -2897,8 +2904,15 @@
|
|||
__STDC_LIMIT_MACROS,
|
||||
LLDB_CONFIGURATION_RELEASE,
|
||||
);
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = NO;
|
||||
GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_EFFECTIVE_CPLUSPLUS_VIOLATIONS = NO;
|
||||
GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES;
|
||||
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES;
|
||||
GCC_WARN_MISSING_PARENTHESES = YES;
|
||||
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
|
||||
GCC_WARN_UNUSED_VALUE = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
PREBINDING = NO;
|
||||
VALID_ARCHS = "x86_64 i386";
|
||||
|
@ -3078,8 +3092,15 @@
|
|||
__STDC_LIMIT_MACROS,
|
||||
LLDB_CONFIGURATION_BUILD_AND_INTEGRATION,
|
||||
);
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = NO;
|
||||
GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_EFFECTIVE_CPLUSPLUS_VIOLATIONS = NO;
|
||||
GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES;
|
||||
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES;
|
||||
GCC_WARN_MISSING_PARENTHESES = YES;
|
||||
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
|
||||
GCC_WARN_UNUSED_VALUE = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
PREBINDING = NO;
|
||||
VALID_ARCHS = "x86_64 i386";
|
||||
|
|
|
@ -629,7 +629,7 @@ public:
|
|||
{
|
||||
for (uint32_t i=0; i<num_variables; i++)
|
||||
{
|
||||
VariableSP var_sp (variable_list->GetVariableAtIndex(i));
|
||||
var_sp = variable_list->GetVariableAtIndex(i);
|
||||
bool dump_variable = true;
|
||||
|
||||
switch (var_sp->GetScope())
|
||||
|
|
|
@ -1253,7 +1253,7 @@ DataExtractor::Dump
|
|||
// earlier C++ libraries
|
||||
std::string binary_value(64, '0');
|
||||
std::bitset<64> bits(uval64);
|
||||
for (size_t i = 0; i < 64; ++i)
|
||||
for (i = 0; i < 64; ++i)
|
||||
if (bits[i])
|
||||
binary_value[64 - 1 - i] = '1';
|
||||
if (item_bit_size > 0)
|
||||
|
|
|
@ -142,6 +142,26 @@ Value::Value(const Value &v) :
|
|||
}
|
||||
}
|
||||
|
||||
Value &
|
||||
Value::operator=(const Value &rhs)
|
||||
{
|
||||
if (this != &rhs)
|
||||
{
|
||||
m_value = rhs.m_value;
|
||||
m_value_type = rhs.m_value_type;
|
||||
m_context = rhs.m_context;
|
||||
m_context_type = rhs.m_context_type;
|
||||
if ((uintptr_t)rhs.m_value.ULongLong(LLDB_INVALID_ADDRESS) == (uintptr_t)rhs.m_data_buffer.GetBytes())
|
||||
{
|
||||
m_data_buffer.CopyData(rhs.m_data_buffer.GetBytes(),
|
||||
rhs.m_data_buffer.GetByteSize());
|
||||
|
||||
m_value = (uintptr_t)m_data_buffer.GetBytes();
|
||||
}
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
Value *
|
||||
Value::CreateProxy()
|
||||
{
|
||||
|
@ -653,17 +673,17 @@ Value::ResolveValue(ExecutionContext *exe_ctx, clang::ASTContext *ast_context)
|
|||
{
|
||||
// Resolve the proxy
|
||||
|
||||
Value * v = (Value*)m_context;
|
||||
Value * rhs = (Value*)m_context;
|
||||
|
||||
m_value = v->m_value;
|
||||
m_value_type = v->m_value_type;
|
||||
m_context = v->m_context;
|
||||
m_context_type = v->m_context_type;
|
||||
m_value = rhs->m_value;
|
||||
m_value_type = rhs->m_value_type;
|
||||
m_context = rhs->m_context;
|
||||
m_context_type = rhs->m_context_type;
|
||||
|
||||
if ((uintptr_t)v->m_value.ULongLong(LLDB_INVALID_ADDRESS) == (uintptr_t)v->m_data_buffer.GetBytes())
|
||||
if ((uintptr_t)rhs->m_value.ULongLong(LLDB_INVALID_ADDRESS) == (uintptr_t)rhs->m_data_buffer.GetBytes())
|
||||
{
|
||||
m_data_buffer.CopyData(v->m_data_buffer.GetBytes(),
|
||||
v->m_data_buffer.GetByteSize());
|
||||
m_data_buffer.CopyData(rhs->m_data_buffer.GetBytes(),
|
||||
rhs->m_data_buffer.GetByteSize());
|
||||
|
||||
m_value = (uintptr_t)m_data_buffer.GetBytes();
|
||||
}
|
||||
|
|
|
@ -118,7 +118,7 @@ ValueObjectVariable::UpdateValue (ExecutionContextScope *exe_scope)
|
|||
loclist_base_load_addr = sc.function->GetAddressRange().GetBaseAddress().GetLoadAddress (exe_ctx.target);
|
||||
}
|
||||
Value old_value(m_value);
|
||||
if (expr.Evaluate (&exe_ctx, GetClangAST(), NULL, loclist_base_load_addr, NULL, m_value, &m_error))
|
||||
if (expr.Evaluate (&exe_ctx, GetClangAST(), NULL, NULL, NULL, loclist_base_load_addr, NULL, m_value, &m_error))
|
||||
{
|
||||
m_value.SetContext(Value::eContextTypeVariable, variable);
|
||||
|
||||
|
|
|
@ -1402,17 +1402,15 @@ ClangExpressionDeclMap::DoMaterializeOneRegister
|
|||
{
|
||||
uint32_t register_number = reg_info.kinds[lldb::eRegisterKindLLDB];
|
||||
uint32_t register_byte_size = reg_info.byte_size;
|
||||
|
||||
Error error;
|
||||
|
||||
|
||||
if (dematerialize)
|
||||
{
|
||||
DataBufferHeap register_data (register_byte_size, 0);
|
||||
|
||||
Error error;
|
||||
if (exe_ctx.process->ReadMemory (addr, register_data.GetBytes(), register_byte_size, error) != register_byte_size)
|
||||
Error read_error;
|
||||
if (exe_ctx.process->ReadMemory (addr, register_data.GetBytes(), register_byte_size, read_error) != register_byte_size)
|
||||
{
|
||||
err.SetErrorStringWithFormat ("Couldn't read %s from the target: %s", reg_info.name, error.AsCString());
|
||||
err.SetErrorStringWithFormat ("Couldn't read %s from the target: %s", reg_info.name, read_error.AsCString());
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -1801,7 +1799,7 @@ ClangExpressionDeclMap::GetVariableValue
|
|||
}
|
||||
Error err;
|
||||
|
||||
if (!var_location_expr.Evaluate(&exe_ctx, ast, NULL, loclist_base_load_addr, NULL, *var_location.get(), &err))
|
||||
if (!var_location_expr.Evaluate(&exe_ctx, ast, NULL, NULL, NULL, loclist_base_load_addr, NULL, *var_location.get(), &err))
|
||||
{
|
||||
if (log)
|
||||
log->Printf("Error evaluating location: %s", err.AsCString());
|
||||
|
|
|
@ -217,18 +217,14 @@ DW_OP_value_to_name (uint32_t val)
|
|||
DWARFExpression::DWARFExpression() :
|
||||
m_data(),
|
||||
m_reg_kind (eRegisterKindDWARF),
|
||||
m_loclist_slide (LLDB_INVALID_ADDRESS),
|
||||
m_expr_locals (NULL),
|
||||
m_decl_map (NULL)
|
||||
m_loclist_slide (LLDB_INVALID_ADDRESS)
|
||||
{
|
||||
}
|
||||
|
||||
DWARFExpression::DWARFExpression(const DWARFExpression& rhs) :
|
||||
m_data(rhs.m_data),
|
||||
m_reg_kind (rhs.m_reg_kind),
|
||||
m_loclist_slide(rhs.m_loclist_slide),
|
||||
m_expr_locals (rhs.m_expr_locals),
|
||||
m_decl_map (rhs.m_decl_map)
|
||||
m_loclist_slide(rhs.m_loclist_slide)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -236,9 +232,7 @@ DWARFExpression::DWARFExpression(const DWARFExpression& rhs) :
|
|||
DWARFExpression::DWARFExpression(const DataExtractor& data, uint32_t data_offset, uint32_t data_length) :
|
||||
m_data(data, data_offset, data_length),
|
||||
m_reg_kind (eRegisterKindDWARF),
|
||||
m_loclist_slide(LLDB_INVALID_ADDRESS),
|
||||
m_expr_locals (NULL),
|
||||
m_decl_map (NULL)
|
||||
m_loclist_slide(LLDB_INVALID_ADDRESS)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -256,19 +250,6 @@ DWARFExpression::IsValid() const
|
|||
return m_data.GetByteSize() > 0;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
DWARFExpression::SetExpressionLocalVariableList (ClangExpressionVariableList *locals)
|
||||
{
|
||||
m_expr_locals = locals;
|
||||
}
|
||||
|
||||
void
|
||||
DWARFExpression::SetExpressionDeclMap (ClangExpressionDeclMap *decl_map)
|
||||
{
|
||||
m_decl_map = decl_map;
|
||||
}
|
||||
|
||||
void
|
||||
DWARFExpression::SetOpcodeData (const DataExtractor& data)
|
||||
{
|
||||
|
@ -749,6 +730,8 @@ DWARFExpression::Evaluate
|
|||
(
|
||||
ExecutionContextScope *exe_scope,
|
||||
clang::ASTContext *ast_context,
|
||||
ClangExpressionVariableList *expr_locals,
|
||||
ClangExpressionDeclMap *decl_map,
|
||||
lldb::addr_t loclist_base_load_addr,
|
||||
const Value* initial_value_ptr,
|
||||
Value& result,
|
||||
|
@ -756,7 +739,7 @@ DWARFExpression::Evaluate
|
|||
) const
|
||||
{
|
||||
ExecutionContext exe_ctx (exe_scope);
|
||||
return Evaluate(&exe_ctx, ast_context, NULL, loclist_base_load_addr, initial_value_ptr, result, error_ptr);
|
||||
return Evaluate(&exe_ctx, ast_context, expr_locals, decl_map, NULL, loclist_base_load_addr, initial_value_ptr, result, error_ptr);
|
||||
}
|
||||
|
||||
bool
|
||||
|
@ -764,6 +747,8 @@ DWARFExpression::Evaluate
|
|||
(
|
||||
ExecutionContext *exe_ctx,
|
||||
clang::ASTContext *ast_context,
|
||||
ClangExpressionVariableList *expr_locals,
|
||||
ClangExpressionDeclMap *decl_map,
|
||||
RegisterContext *reg_ctx,
|
||||
lldb::addr_t loclist_base_load_addr,
|
||||
const Value* initial_value_ptr,
|
||||
|
@ -809,7 +794,7 @@ DWARFExpression::Evaluate
|
|||
|
||||
if (length > 0 && lo_pc <= pc && pc < hi_pc)
|
||||
{
|
||||
return DWARFExpression::Evaluate (exe_ctx, ast_context, m_data, m_expr_locals, m_decl_map, reg_ctx, offset, length, m_reg_kind, initial_value_ptr, result, error_ptr);
|
||||
return DWARFExpression::Evaluate (exe_ctx, ast_context, expr_locals, decl_map, reg_ctx, m_data, offset, length, m_reg_kind, initial_value_ptr, result, error_ptr);
|
||||
}
|
||||
offset += length;
|
||||
}
|
||||
|
@ -821,7 +806,7 @@ DWARFExpression::Evaluate
|
|||
}
|
||||
|
||||
// Not a location list, just a single expression.
|
||||
return DWARFExpression::Evaluate (exe_ctx, ast_context, m_data, m_expr_locals, m_decl_map, reg_ctx, 0, m_data.GetByteSize(), m_reg_kind, initial_value_ptr, result, error_ptr);
|
||||
return DWARFExpression::Evaluate (exe_ctx, ast_context, expr_locals, decl_map, reg_ctx, m_data, 0, m_data.GetByteSize(), m_reg_kind, initial_value_ptr, result, error_ptr);
|
||||
}
|
||||
|
||||
|
||||
|
@ -831,10 +816,10 @@ DWARFExpression::Evaluate
|
|||
(
|
||||
ExecutionContext *exe_ctx,
|
||||
clang::ASTContext *ast_context,
|
||||
const DataExtractor& opcodes,
|
||||
ClangExpressionVariableList *expr_locals,
|
||||
ClangExpressionDeclMap *decl_map,
|
||||
RegisterContext *reg_ctx,
|
||||
const DataExtractor& opcodes,
|
||||
const uint32_t opcodes_offset,
|
||||
const uint32_t opcodes_length,
|
||||
const uint32_t reg_kind,
|
||||
|
|
|
@ -127,6 +127,10 @@ public:
|
|||
{
|
||||
}
|
||||
|
||||
virtual~Instrumenter ()
|
||||
{
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------
|
||||
/// Inspect a function to find instructions to instrument
|
||||
///
|
||||
|
@ -287,12 +291,16 @@ private:
|
|||
class ValidPointerChecker : public Instrumenter
|
||||
{
|
||||
public:
|
||||
ValidPointerChecker(llvm::Module &module,
|
||||
DynamicCheckerFunctions &checker_functions) :
|
||||
ValidPointerChecker (llvm::Module &module,
|
||||
DynamicCheckerFunctions &checker_functions) :
|
||||
Instrumenter(module, checker_functions),
|
||||
m_valid_pointer_check_func(NULL)
|
||||
{
|
||||
}
|
||||
|
||||
virtual ~ValidPointerChecker ()
|
||||
{
|
||||
}
|
||||
private:
|
||||
bool InstrumentInstruction(llvm::Instruction *inst)
|
||||
{
|
||||
|
@ -356,6 +364,12 @@ public:
|
|||
m_objc_object_check_func(NULL)
|
||||
{
|
||||
}
|
||||
|
||||
virtual
|
||||
~ObjcObjectChecker ()
|
||||
{
|
||||
}
|
||||
|
||||
private:
|
||||
bool InstrumentInstruction(llvm::Instruction *inst)
|
||||
{
|
||||
|
|
|
@ -1293,7 +1293,6 @@ ScriptInterpreterPython::BreakpointCallbackFunction
|
|||
&& python_function_name[0] != '\0')
|
||||
{
|
||||
Thread *thread = context->exe_ctx.thread;
|
||||
Target *target = context->exe_ctx.target;
|
||||
const StackFrameSP stop_frame_sp = thread->GetStackFrameSPForStackFramePtr (context->exe_ctx.frame);
|
||||
BreakpointSP breakpoint_sp = target->GetBreakpointByID (break_id);
|
||||
const BreakpointLocationSP bp_loc_sp = breakpoint_sp->FindLocationByID (break_loc_id);
|
||||
|
|
|
@ -344,11 +344,10 @@ AppleObjCTrampolineHandler::AppleObjCVTables::InitializeVTableSymbols ()
|
|||
eSymbolTypeData);
|
||||
if (trampoline_symbol != NULL)
|
||||
{
|
||||
const Address &temp_address = trampoline_symbol->GetValue();
|
||||
if (!temp_address.IsValid())
|
||||
if (!trampoline_symbol->GetValue().IsValid())
|
||||
return false;
|
||||
|
||||
m_trampoline_header = temp_address.GetLoadAddress(&target);
|
||||
m_trampoline_header = trampoline_symbol->GetValue().GetLoadAddress(&target);
|
||||
if (m_trampoline_header == LLDB_INVALID_ADDRESS)
|
||||
return false;
|
||||
|
||||
|
@ -358,11 +357,10 @@ AppleObjCTrampolineHandler::AppleObjCVTables::InitializeVTableSymbols ()
|
|||
eSymbolTypeCode);
|
||||
if (changed_symbol != NULL)
|
||||
{
|
||||
const Address &temp_address = changed_symbol->GetValue();
|
||||
if (!temp_address.IsValid())
|
||||
if (!changed_symbol->GetValue().IsValid())
|
||||
return false;
|
||||
|
||||
lldb::addr_t changed_addr = temp_address.GetLoadAddress(&target);
|
||||
lldb::addr_t changed_addr = changed_symbol->GetValue().GetLoadAddress(&target);
|
||||
if (changed_addr != LLDB_INVALID_ADDRESS)
|
||||
{
|
||||
BreakpointSP trampolines_changed_bp_sp = target.CreateBreakpoint (changed_addr,
|
||||
|
|
|
@ -202,11 +202,11 @@ ObjectFileMachO::GetAddressByteSize () const
|
|||
Symtab *
|
||||
ObjectFileMachO::GetSymtab()
|
||||
{
|
||||
lldb_private::Mutex::Locker locker(m_mutex);
|
||||
lldb_private::Mutex::Locker symfile_locker(m_mutex);
|
||||
if (m_symtab_ap.get() == NULL)
|
||||
{
|
||||
m_symtab_ap.reset(new Symtab(this));
|
||||
Mutex::Locker locker (m_symtab_ap->GetMutex());
|
||||
Mutex::Locker symtab_locker (m_symtab_ap->GetMutex());
|
||||
ParseSymtab (true);
|
||||
}
|
||||
return m_symtab_ap.get();
|
||||
|
|
|
@ -133,7 +133,7 @@ MachThreadContext_arm::ShouldStop ()
|
|||
void
|
||||
MachThreadContext_arm::RefreshStateAfterStop ()
|
||||
{
|
||||
EnableHardwareSingleStep (false) == KERN_SUCCESS;
|
||||
EnableHardwareSingleStep (false);
|
||||
}
|
||||
|
||||
#if defined (ENABLE_ARM_SINGLE_STEP)
|
||||
|
|
|
@ -89,12 +89,10 @@ ProcessMacOSXLog::EnableLog (StreamSP &log_stream_sp, uint32_t log_options, Args
|
|||
{
|
||||
// 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.
|
||||
uint32_t flag_bits;
|
||||
uint32_t flag_bits = 0;
|
||||
LogSP log(GetLog ());
|
||||
if (log)
|
||||
flag_bits = log->GetMask().Get();
|
||||
else
|
||||
flag_bits = 0;
|
||||
|
||||
// Now make a new log with this stream if one was provided
|
||||
if (log_stream_sp)
|
||||
|
@ -105,7 +103,6 @@ ProcessMacOSXLog::EnableLog (StreamSP &log_stream_sp, uint32_t log_options, Args
|
|||
|
||||
if (log)
|
||||
{
|
||||
uint32_t flag_bits = 0;
|
||||
bool got_unknown_category = false;
|
||||
const size_t argc = args.GetArgumentCount();
|
||||
for (size_t i=0; i<argc; ++i)
|
||||
|
|
|
@ -1032,7 +1032,7 @@ RegisterContextLLDB::SavedLocationForRegister (uint32_t lldb_regnum, RegisterLoc
|
|||
ExecutionContext exe_ctx (&m_thread.GetProcess(), &m_thread, NULL);
|
||||
Value result;
|
||||
Error error;
|
||||
if (dwarfexpr.Evaluate (&exe_ctx, NULL, this, 0, NULL, result, &error))
|
||||
if (dwarfexpr.Evaluate (&exe_ctx, NULL, NULL, NULL, this, 0, NULL, result, &error))
|
||||
{
|
||||
addr_t val;
|
||||
val = result.GetScalar().ULongLong();
|
||||
|
|
|
@ -1098,13 +1098,13 @@ ProcessGDBRemote::SetThreadStopInfo (StringExtractor& stop_packet)
|
|||
gdb_thread->SetName (thread_name.empty() ? thread_name.c_str() : NULL);
|
||||
if (exc_type != 0)
|
||||
{
|
||||
const size_t exc_data_count = exc_data.size();
|
||||
const size_t exc_data_size = exc_data.size();
|
||||
|
||||
gdb_thread->SetStopInfo (StopInfoMachException::CreateStopReasonWithMachException (*thread_sp,
|
||||
exc_type,
|
||||
exc_data_count,
|
||||
exc_data_count >= 1 ? exc_data[0] : 0,
|
||||
exc_data_count >= 2 ? exc_data[1] : 0));
|
||||
exc_data_size,
|
||||
exc_data_size >= 1 ? exc_data[0] : 0,
|
||||
exc_data_size >= 2 ? exc_data[1] : 0));
|
||||
}
|
||||
else if (signo)
|
||||
{
|
||||
|
@ -1230,7 +1230,7 @@ ProcessGDBRemote::InterruptIfRunning
|
|||
timeout_time.OffsetWithSeconds(5);
|
||||
StateType state = WaitForStateChangedEventsPrivate (&timeout_time, stop_event_sp);
|
||||
|
||||
const bool timed_out = state == eStateInvalid;
|
||||
timed_out = state == eStateInvalid;
|
||||
if (log)
|
||||
log->Printf ("ProcessGDBRemote::InterruptIfRunning() catch stop event: state = %s, timed-out=%i", StateAsCString(state), timed_out);
|
||||
|
||||
|
|
|
@ -96,12 +96,10 @@ ProcessGDBRemoteLog::EnableLog (StreamSP &log_stream_sp, uint32_t log_options, A
|
|||
{
|
||||
// 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.
|
||||
uint32_t flag_bits;
|
||||
uint32_t flag_bits = 0;
|
||||
LogSP log(GetLog ());
|
||||
if (log)
|
||||
flag_bits = log->GetMask().Get();
|
||||
else
|
||||
flag_bits = 0;
|
||||
|
||||
// Now make a new log with this stream if one was provided
|
||||
if (log_stream_sp)
|
||||
|
@ -112,7 +110,6 @@ ProcessGDBRemoteLog::EnableLog (StreamSP &log_stream_sp, uint32_t log_options, A
|
|||
|
||||
if (log)
|
||||
{
|
||||
uint32_t flag_bits = 0;
|
||||
bool got_unknown_category = false;
|
||||
const size_t argc = args.GetArgumentCount();
|
||||
for (size_t i=0; i<argc; ++i)
|
||||
|
|
|
@ -639,11 +639,9 @@ DWARFCompileUnit::Index
|
|||
const size_t num_attributes = die.GetAttributes(m_dwarf2Data, this, fixed_form_sizes, attributes);
|
||||
if (num_attributes > 0)
|
||||
{
|
||||
uint32_t i;
|
||||
|
||||
is_variable = tag == DW_TAG_variable;
|
||||
|
||||
for (i=0; i<num_attributes; ++i)
|
||||
for (uint32_t i=0; i<num_attributes; ++i)
|
||||
{
|
||||
dw_attr_t attr = attributes.AttributeAtIndex(i);
|
||||
DWARFFormValue form_value;
|
||||
|
@ -767,7 +765,7 @@ DWARFCompileUnit::Index
|
|||
}
|
||||
else
|
||||
{
|
||||
for (size_t i=0, num_ranges = ranges.Size(); i<num_ranges; ++i)
|
||||
for (uint32_t i=0, num_ranges = ranges.Size(); i<num_ranges; ++i)
|
||||
{
|
||||
const DWARFDebugRanges::Range *range = ranges.RangeAtIndex (i);
|
||||
aranges->AppendRange (m_offset, range->begin_offset, range->end_offset);
|
||||
|
|
|
@ -1272,10 +1272,10 @@ SymbolFileDWARF::ParseChildMembers
|
|||
uint32_t block_offset = form_value.BlockData() - debug_info_data.GetDataStart();
|
||||
if (DWARFExpression::Evaluate (NULL,
|
||||
NULL,
|
||||
debug_info_data,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
debug_info_data,
|
||||
block_offset,
|
||||
block_length,
|
||||
eRegisterKindDWARF,
|
||||
|
@ -2882,14 +2882,14 @@ SymbolFileDWARF::GetClangDeclContextForDIE (DWARFCompileUnit *curr_cu, const DWA
|
|||
// DIE and we want to try and find a type that has the complete definition.
|
||||
TypeSP
|
||||
SymbolFileDWARF::FindDefinitionTypeForDIE (
|
||||
DWARFCompileUnit* curr_cu,
|
||||
DWARFCompileUnit* cu,
|
||||
const DWARFDebugInfoEntry *die,
|
||||
const ConstString &type_name
|
||||
)
|
||||
{
|
||||
TypeSP type_sp;
|
||||
|
||||
if (curr_cu == NULL || die == NULL || !type_name)
|
||||
if (cu == NULL || die == NULL || !type_name)
|
||||
return type_sp;
|
||||
|
||||
if (!m_indexed)
|
||||
|
@ -2901,7 +2901,7 @@ SymbolFileDWARF::FindDefinitionTypeForDIE (
|
|||
if (num_matches > 0)
|
||||
{
|
||||
DWARFCompileUnit* type_cu = NULL;
|
||||
DWARFCompileUnit* curr_cu = curr_cu;
|
||||
DWARFCompileUnit* curr_cu = cu;
|
||||
DWARFDebugInfo *info = DebugInfo();
|
||||
for (size_t i=0; i<num_matches; ++i)
|
||||
{
|
||||
|
@ -3362,8 +3362,8 @@ SymbolFileDWARF::ParseType (const SymbolContext& sc, DWARFCompileUnit* dwarf_cu,
|
|||
ast.StartTagDeclarationDefinition (clang_type);
|
||||
if (die->HasChildren())
|
||||
{
|
||||
SymbolContext sc(GetCompUnitForDWARFCompUnit(dwarf_cu));
|
||||
ParseChildEnumerators(sc, clang_type, type_sp->GetByteSize(), dwarf_cu, die);
|
||||
SymbolContext cu_sc(GetCompUnitForDWARFCompUnit(dwarf_cu));
|
||||
ParseChildEnumerators(cu_sc, clang_type, type_sp->GetByteSize(), dwarf_cu, die);
|
||||
}
|
||||
ast.CompleteTagDeclarationDefinition (clang_type);
|
||||
#endif
|
||||
|
@ -3396,7 +3396,7 @@ SymbolFileDWARF::ParseType (const SymbolContext& sc, DWARFCompileUnit* dwarf_cu,
|
|||
uint32_t i;
|
||||
for (i=0; i<num_attributes; ++i)
|
||||
{
|
||||
const dw_attr_t attr = attributes.AttributeAtIndex(i);
|
||||
attr = attributes.AttributeAtIndex(i);
|
||||
DWARFFormValue form_value;
|
||||
if (attributes.ExtractFormValueAtIndex(this, i, form_value))
|
||||
{
|
||||
|
|
|
@ -3909,7 +3909,7 @@ ClangASTContext::CreateMemberPointerType (clang_type_t clang_pointee_type, clang
|
|||
return NULL;
|
||||
}
|
||||
|
||||
size_t
|
||||
uint32_t
|
||||
ClangASTContext::GetPointerBitSize ()
|
||||
{
|
||||
ASTContext *ast = getASTContext();
|
||||
|
|
|
@ -859,13 +859,13 @@ ClangASTType::DumpSummary
|
|||
}
|
||||
}
|
||||
|
||||
uint64_t
|
||||
uint32_t
|
||||
ClangASTType::GetClangTypeBitWidth ()
|
||||
{
|
||||
return GetClangTypeBitWidth (m_ast, m_type);
|
||||
}
|
||||
|
||||
uint64_t
|
||||
uint32_t
|
||||
ClangASTType::GetClangTypeBitWidth (clang::ASTContext *ast_context, clang_type_t clang_type)
|
||||
{
|
||||
if (ast_context && clang_type)
|
||||
|
|
|
@ -27,16 +27,17 @@
|
|||
#include "lldb/Target/Process.h"
|
||||
|
||||
using namespace lldb;
|
||||
using namespace lldb_private;
|
||||
|
||||
lldb_private::Type::Type
|
||||
Type::Type
|
||||
(
|
||||
lldb::user_id_t uid,
|
||||
SymbolFile* symbol_file,
|
||||
const ConstString &name,
|
||||
uint32_t byte_size,
|
||||
SymbolContextScope *context,
|
||||
uintptr_t encoding_data,
|
||||
EncodingDataType encoding_data_type,
|
||||
user_id_t encoding_uid,
|
||||
EncodingDataType encoding_uid_type,
|
||||
const Declaration& decl,
|
||||
clang_type_t clang_type,
|
||||
ResolveState clang_type_resolve_state
|
||||
|
@ -46,8 +47,8 @@ lldb_private::Type::Type
|
|||
m_symbol_file (symbol_file),
|
||||
m_context (context),
|
||||
m_encoding_type (NULL),
|
||||
m_encoding_uid_type (encoding_data_type),
|
||||
m_encoding_uid (encoding_data),
|
||||
m_encoding_uid (encoding_uid),
|
||||
m_encoding_uid_type (encoding_uid_type),
|
||||
m_byte_size (byte_size),
|
||||
m_decl (decl),
|
||||
m_clang_type (clang_type),
|
||||
|
@ -55,7 +56,7 @@ lldb_private::Type::Type
|
|||
{
|
||||
}
|
||||
|
||||
lldb_private::Type::Type () :
|
||||
Type::Type () :
|
||||
UserID (0),
|
||||
m_name ("<INVALID TYPE>"),
|
||||
m_symbol_file (NULL),
|
||||
|
@ -71,29 +72,33 @@ lldb_private::Type::Type () :
|
|||
}
|
||||
|
||||
|
||||
const lldb_private::Type&
|
||||
lldb_private::Type::operator= (const Type& rhs)
|
||||
Type::Type (const Type &rhs) :
|
||||
UserID (rhs),
|
||||
m_name (rhs.m_name),
|
||||
m_symbol_file (rhs.m_symbol_file),
|
||||
m_context (rhs.m_context),
|
||||
m_encoding_type (rhs.m_encoding_type),
|
||||
m_encoding_uid_type (rhs.m_encoding_uid_type),
|
||||
m_encoding_uid (rhs.m_encoding_uid),
|
||||
m_byte_size (rhs.m_byte_size),
|
||||
m_decl (rhs.m_decl),
|
||||
m_clang_type (rhs.m_clang_type),
|
||||
m_clang_type_resolve_state (rhs.m_clang_type_resolve_state)
|
||||
{
|
||||
}
|
||||
|
||||
const Type&
|
||||
Type::operator= (const Type& rhs)
|
||||
{
|
||||
if (this != &rhs)
|
||||
{
|
||||
UserID::operator= (rhs);
|
||||
m_name = rhs.m_name;
|
||||
m_symbol_file = rhs.m_symbol_file;
|
||||
m_context = rhs.m_context;
|
||||
m_encoding_type = rhs.m_encoding_type;
|
||||
m_encoding_uid_type = rhs.m_encoding_uid_type;
|
||||
m_encoding_uid = rhs.m_encoding_uid;
|
||||
m_byte_size = rhs.m_byte_size;
|
||||
m_decl = rhs.m_decl;
|
||||
m_clang_type = rhs.m_clang_type;
|
||||
m_clang_type_resolve_state = rhs.m_clang_type_resolve_state;
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
lldb_private::Type::GetDescription (Stream *s, lldb::DescriptionLevel level, bool show_name)
|
||||
Type::GetDescription (Stream *s, lldb::DescriptionLevel level, bool show_name)
|
||||
{
|
||||
*s << "id = " << (const UserID&)*this;
|
||||
|
||||
|
@ -133,7 +138,7 @@ lldb_private::Type::GetDescription (Stream *s, lldb::DescriptionLevel level, boo
|
|||
|
||||
|
||||
void
|
||||
lldb_private::Type::Dump (Stream *s, bool show_context)
|
||||
Type::Dump (Stream *s, bool show_context)
|
||||
{
|
||||
s->Printf("%.*p: ", (int)sizeof(void*) * 2, this);
|
||||
s->Indent();
|
||||
|
@ -183,8 +188,8 @@ lldb_private::Type::Dump (Stream *s, bool show_context)
|
|||
s->EOL();
|
||||
}
|
||||
|
||||
const lldb_private::ConstString &
|
||||
lldb_private::Type::GetName()
|
||||
const ConstString &
|
||||
Type::GetName()
|
||||
{
|
||||
if (!(m_name))
|
||||
{
|
||||
|
@ -199,18 +204,18 @@ lldb_private::Type::GetName()
|
|||
}
|
||||
|
||||
void
|
||||
lldb_private::Type::DumpTypeName(Stream *s)
|
||||
Type::DumpTypeName(Stream *s)
|
||||
{
|
||||
GetName().Dump(s, "<invalid-type-name>");
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
lldb_private::Type::DumpValue
|
||||
Type::DumpValue
|
||||
(
|
||||
lldb_private::ExecutionContext *exe_ctx,
|
||||
lldb_private::Stream *s,
|
||||
const lldb_private::DataExtractor &data,
|
||||
ExecutionContext *exe_ctx,
|
||||
Stream *s,
|
||||
const DataExtractor &data,
|
||||
uint32_t data_byte_offset,
|
||||
bool show_types,
|
||||
bool show_summary,
|
||||
|
@ -229,7 +234,7 @@ lldb_private::Type::DumpValue
|
|||
s->PutCString(") ");
|
||||
}
|
||||
|
||||
lldb_private::ClangASTType::DumpValue (GetClangAST (),
|
||||
ClangASTType::DumpValue (GetClangAST (),
|
||||
m_clang_type,
|
||||
exe_ctx,
|
||||
s,
|
||||
|
@ -246,8 +251,8 @@ lldb_private::Type::DumpValue
|
|||
}
|
||||
}
|
||||
|
||||
lldb_private::Type *
|
||||
lldb_private::Type::GetEncodingType ()
|
||||
Type *
|
||||
Type::GetEncodingType ()
|
||||
{
|
||||
if (m_encoding_type == NULL && m_encoding_uid != LLDB_INVALID_UID)
|
||||
m_encoding_type = m_symbol_file->ResolveTypeUID(m_encoding_uid);
|
||||
|
@ -256,8 +261,8 @@ lldb_private::Type::GetEncodingType ()
|
|||
|
||||
|
||||
|
||||
uint64_t
|
||||
lldb_private::Type::GetByteSize()
|
||||
uint32_t
|
||||
Type::GetByteSize()
|
||||
{
|
||||
if (m_byte_size == 0)
|
||||
{
|
||||
|
@ -274,7 +279,7 @@ lldb_private::Type::GetByteSize()
|
|||
m_byte_size = encoding_type->GetByteSize();
|
||||
if (m_byte_size == 0)
|
||||
{
|
||||
uint64_t bit_width = ClangASTType::GetClangTypeBitWidth (GetClangAST(), GetClangLayoutType());
|
||||
uint32_t bit_width = ClangASTType::GetClangTypeBitWidth (GetClangAST(), GetClangLayoutType());
|
||||
m_byte_size = (bit_width + 7 ) / 8;
|
||||
}
|
||||
}
|
||||
|
@ -293,7 +298,7 @@ lldb_private::Type::GetByteSize()
|
|||
|
||||
|
||||
uint32_t
|
||||
lldb_private::Type::GetNumChildren (bool omit_empty_base_classes)
|
||||
Type::GetNumChildren (bool omit_empty_base_classes)
|
||||
{
|
||||
if (ResolveClangType(eResolveStateForward))
|
||||
{
|
||||
|
@ -305,7 +310,7 @@ lldb_private::Type::GetNumChildren (bool omit_empty_base_classes)
|
|||
}
|
||||
|
||||
bool
|
||||
lldb_private::Type::IsAggregateType ()
|
||||
Type::IsAggregateType ()
|
||||
{
|
||||
if (ResolveClangType(eResolveStateForward))
|
||||
return ClangASTContext::IsAggregateType (m_clang_type);
|
||||
|
@ -313,33 +318,33 @@ lldb_private::Type::IsAggregateType ()
|
|||
}
|
||||
|
||||
lldb::Format
|
||||
lldb_private::Type::GetFormat ()
|
||||
Type::GetFormat ()
|
||||
{
|
||||
// Make sure we resolve our type if it already hasn't been.
|
||||
if (!ResolveClangType(eResolveStateForward))
|
||||
return lldb::eFormatInvalid;
|
||||
return lldb_private::ClangASTType::GetFormat (m_clang_type);
|
||||
return ClangASTType::GetFormat (m_clang_type);
|
||||
}
|
||||
|
||||
|
||||
|
||||
lldb::Encoding
|
||||
lldb_private::Type::GetEncoding (uint32_t &count)
|
||||
Type::GetEncoding (uint32_t &count)
|
||||
{
|
||||
// Make sure we resolve our type if it already hasn't been.
|
||||
if (!ResolveClangType(eResolveStateForward))
|
||||
return lldb::eEncodingInvalid;
|
||||
|
||||
return lldb_private::ClangASTType::GetEncoding (m_clang_type, count);
|
||||
return ClangASTType::GetEncoding (m_clang_type, count);
|
||||
}
|
||||
|
||||
|
||||
|
||||
bool
|
||||
lldb_private::Type::DumpValueInMemory
|
||||
Type::DumpValueInMemory
|
||||
(
|
||||
lldb_private::ExecutionContext *exe_ctx,
|
||||
lldb_private::Stream *s,
|
||||
ExecutionContext *exe_ctx,
|
||||
Stream *s,
|
||||
lldb::addr_t address,
|
||||
lldb::AddressType address_type,
|
||||
bool show_types,
|
||||
|
@ -349,7 +354,7 @@ lldb_private::Type::DumpValueInMemory
|
|||
{
|
||||
if (address != LLDB_INVALID_ADDRESS)
|
||||
{
|
||||
lldb_private::DataExtractor data;
|
||||
DataExtractor data;
|
||||
data.SetByteOrder (exe_ctx->process->GetByteOrder());
|
||||
if (ReadFromMemory (exe_ctx, address, address_type, data))
|
||||
{
|
||||
|
@ -362,7 +367,7 @@ lldb_private::Type::DumpValueInMemory
|
|||
|
||||
|
||||
bool
|
||||
lldb_private::Type::ReadFromMemory (lldb_private::ExecutionContext *exe_ctx, lldb::addr_t addr, lldb::AddressType address_type, lldb_private::DataExtractor &data)
|
||||
Type::ReadFromMemory (ExecutionContext *exe_ctx, lldb::addr_t addr, lldb::AddressType address_type, DataExtractor &data)
|
||||
{
|
||||
if (address_type == lldb::eAddressTypeFile)
|
||||
{
|
||||
|
@ -401,26 +406,26 @@ lldb_private::Type::ReadFromMemory (lldb_private::ExecutionContext *exe_ctx, lld
|
|||
|
||||
|
||||
bool
|
||||
lldb_private::Type::WriteToMemory (lldb_private::ExecutionContext *exe_ctx, lldb::addr_t addr, lldb::AddressType address_type, lldb_private::DataExtractor &data)
|
||||
Type::WriteToMemory (ExecutionContext *exe_ctx, lldb::addr_t addr, lldb::AddressType address_type, DataExtractor &data)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
lldb_private::TypeList*
|
||||
lldb_private::Type::GetTypeList()
|
||||
TypeList*
|
||||
Type::GetTypeList()
|
||||
{
|
||||
return GetSymbolFile()->GetTypeList();
|
||||
}
|
||||
|
||||
const lldb_private::Declaration &
|
||||
lldb_private::Type::GetDeclaration () const
|
||||
const Declaration &
|
||||
Type::GetDeclaration () const
|
||||
{
|
||||
return m_decl;
|
||||
}
|
||||
|
||||
bool
|
||||
lldb_private::Type::ResolveClangType (ResolveState clang_type_resolve_state)
|
||||
Type::ResolveClangType (ResolveState clang_type_resolve_state)
|
||||
{
|
||||
Type *encoding_type = NULL;
|
||||
if (m_clang_type == NULL)
|
||||
|
@ -560,7 +565,7 @@ lldb_private::Type::ResolveClangType (ResolveState clang_type_resolve_state)
|
|||
return m_clang_type != NULL;
|
||||
}
|
||||
uint32_t
|
||||
lldb_private::Type::GetEncodingMask ()
|
||||
Type::GetEncodingMask ()
|
||||
{
|
||||
uint32_t encoding_mask = 1u << m_encoding_uid_type;
|
||||
Type *encoding_type = GetEncodingType();
|
||||
|
@ -571,40 +576,40 @@ lldb_private::Type::GetEncodingMask ()
|
|||
}
|
||||
|
||||
clang_type_t
|
||||
lldb_private::Type::GetClangType ()
|
||||
Type::GetClangType ()
|
||||
{
|
||||
ResolveClangType(eResolveStateFull);
|
||||
return m_clang_type;
|
||||
}
|
||||
|
||||
clang_type_t
|
||||
lldb_private::Type::GetClangLayoutType ()
|
||||
Type::GetClangLayoutType ()
|
||||
{
|
||||
ResolveClangType(eResolveStateLayout);
|
||||
return m_clang_type;
|
||||
}
|
||||
|
||||
clang_type_t
|
||||
lldb_private::Type::GetClangForwardType ()
|
||||
Type::GetClangForwardType ()
|
||||
{
|
||||
ResolveClangType (eResolveStateForward);
|
||||
return m_clang_type;
|
||||
}
|
||||
|
||||
clang::ASTContext *
|
||||
lldb_private::Type::GetClangAST ()
|
||||
Type::GetClangAST ()
|
||||
{
|
||||
return GetClangASTContext().getASTContext();
|
||||
}
|
||||
|
||||
lldb_private::ClangASTContext &
|
||||
lldb_private::Type::GetClangASTContext ()
|
||||
ClangASTContext &
|
||||
Type::GetClangASTContext ()
|
||||
{
|
||||
return m_symbol_file->GetClangASTContext();
|
||||
}
|
||||
|
||||
int
|
||||
lldb_private::Type::Compare(const Type &a, const Type &b)
|
||||
Type::Compare(const Type &a, const Type &b)
|
||||
{
|
||||
// Just compare the UID values for now...
|
||||
lldb::user_id_t a_uid = a.GetID();
|
||||
|
@ -620,14 +625,14 @@ lldb_private::Type::Compare(const Type &a, const Type &b)
|
|||
|
||||
|
||||
void *
|
||||
lldb_private::Type::CreateClangPointerType (lldb_private::Type *type)
|
||||
Type::CreateClangPointerType (Type *type)
|
||||
{
|
||||
assert(type);
|
||||
return GetClangASTContext().CreatePointerType(type->GetClangForwardType());
|
||||
}
|
||||
|
||||
void *
|
||||
lldb_private::Type::CreateClangTypedefType (lldb_private::Type *typedef_type, lldb_private::Type *base_type)
|
||||
Type::CreateClangTypedefType (Type *typedef_type, Type *base_type)
|
||||
{
|
||||
assert(typedef_type && base_type);
|
||||
return GetClangASTContext().CreateTypedefType (typedef_type->GetName().AsCString(),
|
||||
|
@ -636,14 +641,14 @@ lldb_private::Type::CreateClangTypedefType (lldb_private::Type *typedef_type, ll
|
|||
}
|
||||
|
||||
void *
|
||||
lldb_private::Type::CreateClangLValueReferenceType (lldb_private::Type *type)
|
||||
Type::CreateClangLValueReferenceType (Type *type)
|
||||
{
|
||||
assert(type);
|
||||
return GetClangASTContext().CreateLValueReferenceType(type->GetClangForwardType());
|
||||
}
|
||||
|
||||
void *
|
||||
lldb_private::Type::CreateClangRValueReferenceType (lldb_private::Type *type)
|
||||
Type::CreateClangRValueReferenceType (Type *type)
|
||||
{
|
||||
assert(type);
|
||||
return GetClangASTContext().CreateRValueReferenceType (type->GetClangForwardType());
|
||||
|
|
|
@ -48,9 +48,9 @@ StackFrame::StackFrame
|
|||
lldb::addr_t pc,
|
||||
const SymbolContext *sc_ptr
|
||||
) :
|
||||
m_thread (thread),
|
||||
m_frame_index (frame_idx),
|
||||
m_concrete_frame_index (unwind_frame_index),
|
||||
m_thread (thread),
|
||||
m_reg_context_sp (),
|
||||
m_id (pc, cfa, NULL),
|
||||
m_frame_code_addr (NULL, pc),
|
||||
|
@ -59,7 +59,8 @@ StackFrame::StackFrame
|
|||
m_frame_base (),
|
||||
m_frame_base_error (),
|
||||
m_variable_list_sp (),
|
||||
m_variable_list_value_objects ()
|
||||
m_variable_list_value_objects (),
|
||||
m_disassembly ()
|
||||
{
|
||||
if (sc_ptr != NULL)
|
||||
{
|
||||
|
@ -78,9 +79,9 @@ StackFrame::StackFrame
|
|||
lldb::addr_t pc,
|
||||
const SymbolContext *sc_ptr
|
||||
) :
|
||||
m_thread (thread),
|
||||
m_frame_index (frame_idx),
|
||||
m_concrete_frame_index (unwind_frame_index),
|
||||
m_thread (thread),
|
||||
m_reg_context_sp (reg_context_sp),
|
||||
m_id (pc, cfa, NULL),
|
||||
m_frame_code_addr (NULL, pc),
|
||||
|
@ -89,7 +90,8 @@ StackFrame::StackFrame
|
|||
m_frame_base (),
|
||||
m_frame_base_error (),
|
||||
m_variable_list_sp (),
|
||||
m_variable_list_value_objects ()
|
||||
m_variable_list_value_objects (),
|
||||
m_disassembly ()
|
||||
{
|
||||
if (sc_ptr != NULL)
|
||||
{
|
||||
|
@ -114,9 +116,9 @@ StackFrame::StackFrame
|
|||
const Address& pc_addr,
|
||||
const SymbolContext *sc_ptr
|
||||
) :
|
||||
m_thread (thread),
|
||||
m_frame_index (frame_idx),
|
||||
m_concrete_frame_index (unwind_frame_index),
|
||||
m_thread (thread),
|
||||
m_reg_context_sp (reg_context_sp),
|
||||
m_id (pc_addr.GetLoadAddress (&thread.GetProcess().GetTarget()), cfa, NULL),
|
||||
m_frame_code_addr (pc_addr),
|
||||
|
@ -125,7 +127,8 @@ StackFrame::StackFrame
|
|||
m_frame_base (),
|
||||
m_frame_base_error (),
|
||||
m_variable_list_sp (),
|
||||
m_variable_list_value_objects ()
|
||||
m_variable_list_value_objects (),
|
||||
m_disassembly ()
|
||||
{
|
||||
if (sc_ptr != NULL)
|
||||
{
|
||||
|
@ -626,7 +629,7 @@ StackFrame::GetValueForVariableExpressionPath (const char *var_expr_cstr, uint32
|
|||
if (var_path.size() > 2) // Need at least two brackets and a number
|
||||
{
|
||||
char *end = NULL;
|
||||
int32_t child_index = ::strtol (&var_path[1], &end, 0);
|
||||
long child_index = ::strtol (&var_path[1], &end, 0);
|
||||
if (end && *end == ']')
|
||||
{
|
||||
|
||||
|
@ -745,7 +748,7 @@ StackFrame::GetFrameBaseValue (Scalar &frame_base, Error *error_ptr)
|
|||
if (m_sc.function->GetFrameBaseExpression().IsLocationList())
|
||||
loclist_base_addr = m_sc.function->GetAddressRange().GetBaseAddress().GetLoadAddress (&m_thread.GetProcess().GetTarget());
|
||||
|
||||
if (m_sc.function->GetFrameBaseExpression().Evaluate(&exe_ctx, NULL, NULL, loclist_base_addr, NULL, expr_value, &m_frame_base_error) == false)
|
||||
if (m_sc.function->GetFrameBaseExpression().Evaluate(&exe_ctx, NULL, NULL, NULL, NULL, loclist_base_addr, NULL, expr_value, &m_frame_base_error) == false)
|
||||
{
|
||||
// We should really have an error if evaluate returns, but in case
|
||||
// we don't, lets set the error to something at least.
|
||||
|
@ -963,4 +966,4 @@ lldb::StackFrameSP
|
|||
StackFrame::GetSP ()
|
||||
{
|
||||
return m_thread.GetStackFrameSPForStackFramePtr (this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -844,7 +844,7 @@ Thread::DumpThreadPlans (lldb_private::Stream *s) const
|
|||
|
||||
stack_size = m_discarded_plan_stack.size();
|
||||
s->Printf ("Discarded Plan Stack: %d elements.\n", stack_size);
|
||||
for (int i = stack_size - 1; i >= 0; i--)
|
||||
for (i = stack_size - 1; i >= 0; i--)
|
||||
{
|
||||
s->Printf ("Element %d: ", i);
|
||||
s->IndentMore();
|
||||
|
|
|
@ -50,4 +50,4 @@ ThreadPlanShouldStopHere::InvokeShouldStopHereCallback ()
|
|||
return m_callback (m_owner, m_flags, m_baton);
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -372,6 +372,7 @@
|
|||
isa = PBXProject;
|
||||
buildConfigurationList = 1DEB914E08733D8E0010E9CD /* Build configuration list for PBXProject "debugserver" */;
|
||||
compatibilityVersion = "Xcode 3.1";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 1;
|
||||
knownRegions = (
|
||||
English,
|
||||
|
|
Loading…
Reference in New Issue