mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-10 10:01:42 +00:00
Avoid a crash when trying to parse a line table in the DWARF parser.
llvm-svn: 167236
This commit is contained in:
parent
531891e980
commit
da2455bd45
@ -961,19 +961,21 @@ SymbolFileDWARF::ParseCompileUnitSupportFiles (const SymbolContext& sc, FileSpec
|
||||
{
|
||||
assert (sc.comp_unit);
|
||||
DWARFCompileUnit* dwarf_cu = GetDWARFCompileUnit(sc.comp_unit);
|
||||
assert (dwarf_cu);
|
||||
const DWARFDebugInfoEntry * cu_die = dwarf_cu->GetCompileUnitDIEOnly();
|
||||
|
||||
if (cu_die)
|
||||
if (dwarf_cu)
|
||||
{
|
||||
const char * cu_comp_dir = cu_die->GetAttributeValueAsString(this, dwarf_cu, DW_AT_comp_dir, NULL);
|
||||
dw_offset_t stmt_list = cu_die->GetAttributeValueAsUnsigned(this, dwarf_cu, DW_AT_stmt_list, DW_INVALID_OFFSET);
|
||||
const DWARFDebugInfoEntry * cu_die = dwarf_cu->GetCompileUnitDIEOnly();
|
||||
|
||||
// All file indexes in DWARF are one based and a file of index zero is
|
||||
// supposed to be the compile unit itself.
|
||||
support_files.Append (*sc.comp_unit);
|
||||
if (cu_die)
|
||||
{
|
||||
const char * cu_comp_dir = cu_die->GetAttributeValueAsString(this, dwarf_cu, DW_AT_comp_dir, NULL);
|
||||
dw_offset_t stmt_list = cu_die->GetAttributeValueAsUnsigned(this, dwarf_cu, DW_AT_stmt_list, DW_INVALID_OFFSET);
|
||||
|
||||
return DWARFDebugLine::ParseSupportFiles(sc.comp_unit->GetModule(), get_debug_line_data(), cu_comp_dir, stmt_list, support_files);
|
||||
// All file indexes in DWARF are one based and a file of index zero is
|
||||
// supposed to be the compile unit itself.
|
||||
support_files.Append (*sc.comp_unit);
|
||||
|
||||
return DWARFDebugLine::ParseSupportFiles(sc.comp_unit->GetModule(), get_debug_line_data(), cu_comp_dir, stmt_list, support_files);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user