2009-07-13 11:30:47 +00:00
|
|
|
--- valgrind/coregrind/m_debuginfo/readdwarf3.c.jj 2009-07-13 12:15:20.000000000 +0200
|
|
|
|
+++ valgrind/coregrind/m_debuginfo/readdwarf3.c 2009-07-13 13:16:23.000000000 +0200
|
2009-07-13 11:41:40 +00:00
|
|
|
@@ -1415,8 +1415,8 @@ void read_filename_table( /*MOD*/D3VarPa
|
|
|
|
= get_Initial_Length( &is_dw64, &c,
|
2009-07-13 11:30:47 +00:00
|
|
|
"read_filename_table: invalid initial-length field" );
|
|
|
|
version = get_UShort( &c );
|
|
|
|
- if (version != 2)
|
|
|
|
- cc->barf("read_filename_table: Only DWARF version 2 line info "
|
|
|
|
+ if (version != 2 && version != 3)
|
|
|
|
+ cc->barf("read_filename_table: Only DWARF version 2 and 3 line info "
|
|
|
|
"is currently supported.");
|
2009-07-13 11:41:40 +00:00
|
|
|
header_length = (ULong)get_Dwarfish_UWord( &c, is_dw64 );
|
|
|
|
minimum_instruction_length = get_UChar( &c );
|
2009-07-13 11:30:47 +00:00
|
|
|
--- valgrind/coregrind/m_debuginfo/readdwarf.c.jj 2009-07-13 12:15:20.000000000 +0200
|
|
|
|
+++ valgrind/coregrind/m_debuginfo/readdwarf.c 2009-07-13 13:17:52.000000000 +0200
|
|
|
|
@@ -512,9 +512,9 @@ void read_dwarf2_lineblock ( struct _Deb
|
|
|
|
VG_(printf)(" DWARF Version: %d\n",
|
|
|
|
(Int)info.li_version);
|
|
|
|
|
|
|
|
- if (info.li_version != 2) {
|
|
|
|
+ if (info.li_version != 2 && info.li_version != 3) {
|
|
|
|
ML_(symerr)(di, True,
|
|
|
|
- "Only DWARF version 2 line info "
|
|
|
|
+ "Only DWARF version 2 and 3 line info "
|
|
|
|
"is currently supported.");
|
|
|
|
goto out;
|
|
|
|
}
|
|
|
|
@@ -1162,7 +1162,7 @@ void ML_(read_debuginfo_dwarf3)
|
|
|
|
|
|
|
|
/* version should be 2 */
|
|
|
|
ver = *((UShort*)( block_img + blklen_len ));
|
|
|
|
- if ( ver != 2 ) {
|
|
|
|
+ if ( ver != 2 && ver != 3 ) {
|
|
|
|
ML_(symerr)( di, True,
|
|
|
|
"Ignoring non-dwarf2 block in .debug_info" );
|
|
|
|
continue;
|
|
|
|
@@ -3575,8 +3575,8 @@ void ML_(read_callframe_info_dwarf3)
|
|
|
|
VG_(printf)("cie.version = %d\n", (Int)cie_version);
|
|
|
|
if (di->ddump_frames)
|
|
|
|
VG_(printf)(" Version: %d\n", (Int)cie_version);
|
|
|
|
- if (cie_version != 1) {
|
|
|
|
- how = "unexpected CIE version (not 1)";
|
|
|
|
+ if (cie_version != 1 && cie_version != 3) {
|
|
|
|
+ how = "unexpected CIE version (not 1 nor 3)";
|
|
|
|
goto bad;
|
|
|
|
}
|
|
|
|
|