@@ -978,7 +978,7 @@ static void* pdb_ds_read( const struct pdb_reader* pdb,
978
978
979
979
if (!size ) return NULL ;
980
980
if (size > 512 * 1024 * 1024 ) {
981
- VG_ (umsg )("Warning : pdb_ds_read: implausible size "
981
+ VG_ (umsg )("LOAD_PDB_DEBUGINFO : pdb_ds_read: implausible size "
982
982
"(%u); skipping -- possible invalid .pdb file?\n" , size );
983
983
return NULL ;
984
984
}
@@ -1125,14 +1125,14 @@ void pdb_check_root_version_and_timestamp( const HChar* pdbname,
1125
1125
break ;
1126
1126
default :
1127
1127
if (VG_ (clo_verbosity ) > 1 )
1128
- VG_ (message )( Vg_UserMsg ,
1129
- "Unknown .pdb root block version %d\n" , version );
1128
+ VG_ (umsg )( "LOAD_PDB_DEBUGINFO: "
1129
+ "Unknown .pdb root block version %d\n" , version );
1130
1130
}
1131
1131
if ( TimeDateStamp != pdbmtime ) {
1132
1132
if (VG_ (clo_verbosity ) > 1 )
1133
- VG_ (message )( Vg_UserMsg ,
1134
- "Wrong time stamp of .PDB file %s (0x%08x, 0x%08llx)\n" ,
1135
- pdbname , TimeDateStamp , pdbmtime );
1133
+ VG_ (umsg )( "LOAD_PDB_DEBUGINFO: Wrong time stamp of .PDB file "
1134
+ " %s (0x%08x, 0x%08llx)\n" ,
1135
+ pdbname , TimeDateStamp , pdbmtime );
1136
1136
}
1137
1137
}
1138
1138
@@ -1218,9 +1218,8 @@ static ULong DEBUG_SnarfCodeView(
1218
1218
ULong n_syms_read = 0 ;
1219
1219
1220
1220
if (debug )
1221
- VG_ (message )(Vg_UserMsg ,
1222
- "BEGIN SnarfCodeView addr=%p offset=%d length=%d\n" ,
1223
- root , offset , size );
1221
+ VG_ (umsg )("BEGIN SnarfCodeView addr=%p offset=%d length=%d\n" ,
1222
+ root , offset , size );
1224
1223
1225
1224
VG_ (memset )(& vsym , 0 , sizeof (vsym )); /* avoid holes */
1226
1225
/*
@@ -1260,7 +1259,7 @@ static ULong DEBUG_SnarfCodeView(
1260
1259
symname [sym -> data_v1 .p_name .namelen ] = '\0' ;
1261
1260
1262
1261
if (debug )
1263
- VG_ (message )( Vg_UserMsg , " Data %s\n" , symname );
1262
+ VG_ (umsg )( " Data %s\n" , symname );
1264
1263
1265
1264
if (0 /*VG_(needs).data_syms*/ ) {
1266
1265
nmstr = ML_ (addStr )(di , symname , sym -> data_v1 .p_name .namelen );
@@ -1285,8 +1284,7 @@ static ULong DEBUG_SnarfCodeView(
1285
1284
symname [k ] = '\0' ;
1286
1285
1287
1286
if (debug )
1288
- VG_ (message )(Vg_UserMsg ,
1289
- " S_GDATA_V2/S_LDATA_V2/S_PUB_V2 %s\n" , symname );
1287
+ VG_ (umsg )(" S_GDATA_V2/S_LDATA_V2/S_PUB_V2 %s\n" , symname );
1290
1288
1291
1289
if (sym -> generic .id == S_PUB_V2 /*VG_(needs).data_syms*/ ) {
1292
1290
nmstr = ML_ (addStr )(di , symname , k );
@@ -1317,9 +1315,8 @@ static ULong DEBUG_SnarfCodeView(
1317
1315
symname [k ] = '\0' ;
1318
1316
1319
1317
if (debug )
1320
- VG_ (message )(Vg_UserMsg ,
1321
- " S_PUB_FUNC1_V3/S_PUB_FUNC2_V3/S_PUB_V3 %s\n" ,
1322
- symname );
1318
+ VG_ (umsg )(" S_PUB_FUNC1_V3/S_PUB_FUNC2_V3/S_PUB_V3 %s\n" ,
1319
+ symname );
1323
1320
1324
1321
if (1 /*sym->generic.id==S_PUB_FUNC1_V3
1325
1322
|| sym->generic.id==S_PUB_FUNC2_V3*/ ) {
@@ -1369,9 +1366,8 @@ static ULong DEBUG_SnarfCodeView(
1369
1366
vsym .isText = True ;
1370
1367
vsym .isIFunc = False ;
1371
1368
if (debug )
1372
- VG_ (message )(Vg_UserMsg ,
1373
- " Adding function %s addr=%#lx length=%d\n" ,
1374
- symname , vsym .avmas .main , vsym .size );
1369
+ VG_ (umsg )(" Adding function %s addr=%#lx length=%d\n" ,
1370
+ symname , vsym .avmas .main , vsym .size );
1375
1371
ML_ (addSym )( di , & vsym );
1376
1372
n_syms_read ++ ;
1377
1373
break ;
@@ -1391,17 +1387,15 @@ static ULong DEBUG_SnarfCodeView(
1391
1387
vsym .isText = True ;
1392
1388
vsym .isIFunc = False ;
1393
1389
if (debug )
1394
- VG_ (message )(Vg_UserMsg ,
1395
- " Adding function %s addr=%#lx length=%d\n" ,
1396
- symname , vsym .avmas .main , vsym .size );
1390
+ VG_ (umsg )(" Adding function %s addr=%#lx length=%d\n" ,
1391
+ symname , vsym .avmas .main , vsym .size );
1397
1392
ML_ (addSym )( di , & vsym );
1398
1393
n_syms_read ++ ;
1399
1394
break ;
1400
1395
case S_LPROC_V3 :
1401
1396
case S_GPROC_V3 : {
1402
1397
if (debug )
1403
- VG_ (message )(Vg_UserMsg ,
1404
- " S_LPROC_V3/S_GPROC_V3 %s\n" , sym -> proc_v3 .name );
1398
+ VG_ (umsg )(" S_LPROC_V3/S_GPROC_V3 %s\n" , sym -> proc_v3 .name );
1405
1399
1406
1400
if (1 ) {
1407
1401
nmstr = ML_ (addStr )(di , sym -> proc_v3 .name ,
@@ -1488,9 +1482,8 @@ static ULong DEBUG_SnarfCodeView(
1488
1482
} /* for ( i = offset; i < size; i += length ) */
1489
1483
1490
1484
if (debug )
1491
- VG_ (message )(Vg_UserMsg ,
1492
- "END SnarfCodeView addr=%p offset=%d length=%d\n" ,
1493
- root , offset , size );
1485
+ VG_ (umsg )("END SnarfCodeView addr=%p offset=%d length=%d\n" ,
1486
+ root , offset , size );
1494
1487
return n_syms_read ;
1495
1488
}
1496
1489
@@ -1542,9 +1535,7 @@ static ULong DEBUG_SnarfLinetab(
1542
1535
ULong n_lines_read = 0 ;
1543
1536
1544
1537
if (debug )
1545
- VG_ (message )(Vg_UserMsg ,
1546
- "BEGIN SnarfLineTab linetab=%p size=%d\n" ,
1547
- linetab , size );
1538
+ VG_ (umsg )("BEGIN SnarfLineTab linetab=%p size=%d\n" , linetab , size );
1548
1539
1549
1540
/*
1550
1541
* Now get the important bits.
@@ -1615,7 +1606,7 @@ static ULong DEBUG_SnarfLinetab(
1615
1606
UInt j ;
1616
1607
1617
1608
if (debug )
1618
- VG_ (message )( Vg_UserMsg ,
1609
+ VG_ (umsg )(
1619
1610
" Adding %d lines for file %s segment %d addr=%#x end=%#x\n" ,
1620
1611
linecount , filename , segno , start [k ].start , start [k ].end );
1621
1612
@@ -1627,10 +1618,10 @@ static ULong DEBUG_SnarfLinetab(
1627
1618
? pnt2 .ui [j + 1 ]
1628
1619
: start [k ].end );
1629
1620
if (debug )
1630
- VG_ (message )( Vg_UserMsg ,
1621
+ VG_ (umsg )(
1631
1622
" Adding line %d addr=%#lx end=%#lx\n" ,
1632
- ((const unsigned short * )(pnt2 .ui + linecount ))[j ],
1633
- startaddr , endaddr );
1623
+ ((const unsigned short * )(pnt2 .ui + linecount ))[j ],
1624
+ startaddr , endaddr );
1634
1625
ML_ (addLineInfo )(
1635
1626
di ,
1636
1627
fnmdirstr_ix ,
@@ -1643,9 +1634,8 @@ static ULong DEBUG_SnarfLinetab(
1643
1634
}
1644
1635
1645
1636
if (debug )
1646
- VG_ (message )(Vg_UserMsg ,
1647
- "END SnarfLineTab linetab=%p size=%d\n" ,
1648
- linetab , size );
1637
+ VG_ (umsg )("END SnarfLineTab linetab=%p size=%d\n" ,
1638
+ linetab , size );
1649
1639
1650
1640
return n_lines_read ;
1651
1641
}
@@ -1859,7 +1849,9 @@ static unsigned get_stream_by_name(const struct pdb_reader* pdb, const char* nam
1859
1849
pdw += * ok_bits ++ + 1 ;
1860
1850
if (* pdw ++ != 0 )
1861
1851
{
1862
- VG_ (printf )("unexpected value\n" );
1852
+ if (VG_ (clo_verbosity ) > 1 )
1853
+ VG_ (umsg )("LOAD_PDB_DEBUGINFO: "
1854
+ "get_stream_by_name: unexpected value\n" );
1863
1855
return -1 ;
1864
1856
}
1865
1857
@@ -1884,8 +1876,13 @@ static void *read_string_table(const struct pdb_reader* pdb)
1884
1876
stream_idx = get_stream_by_name (pdb , "/names" );
1885
1877
if (stream_idx == -1 ) return NULL ;
1886
1878
ret = pdb -> read_file (pdb , stream_idx ,0 );
1887
- if (ret && * (const DWORD * )ret == 0xeffeeffe ) return ret ;
1888
- VG_ (printf )("wrong header %x expecting 0xeffeeffe\n" , * (const DWORD * )ret );
1879
+ if (ret && * (const DWORD * )ret == 0xeffeeffe ) {
1880
+ return ret ;
1881
+ }
1882
+ if (VG_ (clo_verbosity ) > 1 )
1883
+ VG_ (umsg )("LOAD_PDB_DEBUGINFO: read_string_table: "
1884
+ "wrong header 0x%08x, expecting 0xeffeeffe\n" ,
1885
+ * (const DWORD * )ret );
1889
1886
ML_ (dinfo_free )( ret );
1890
1887
return NULL ;
1891
1888
}
@@ -1920,10 +1917,12 @@ static void pdb_dump( const struct pdb_reader* pdb,
1920
1917
sources. */
1921
1918
char * filesimage ;
1922
1919
DWORD filessize ;
1923
- if (!(filesimage = read_string_table (pdb )))
1924
- VG_ (printf )("string table not found\n" );
1925
- else
1920
+ if (!(filesimage = read_string_table (pdb ))) {
1921
+ VG_ (umsg )("LOAD_PDB_DEBUGINFO: pdb_dump: string table not found\n" );
1922
+ }
1923
+ else {
1926
1924
filessize = * (const DWORD * )(filesimage + 8 );
1925
+ }
1927
1926
1928
1927
/* Since we just use the FPO data without reformatting, at least
1929
1928
do a basic sanity check on the struct layout. */
@@ -2100,9 +2099,8 @@ static void pdb_dump( const struct pdb_reader* pdb,
2100
2099
break ;
2101
2100
default :
2102
2101
if (VG_ (clo_verbosity ) > 1 )
2103
- VG_ (message )(Vg_UserMsg ,
2104
- "Unknown .pdb type info version %ld\n" ,
2105
- types .version );
2102
+ VG_ (umsg )("LOAD_PDB_DEBUGINFO: "
2103
+ "Unknown .pdb type info version %ld\n" , types .version );
2106
2104
}
2107
2105
2108
2106
header_size = 0 ;
@@ -2115,9 +2113,9 @@ static void pdb_dump( const struct pdb_reader* pdb,
2115
2113
break ;
2116
2114
default :
2117
2115
if (VG_ (clo_verbosity ) > 1 )
2118
- VG_ (message )( Vg_UserMsg ,
2119
- "Unknown .pdb symbol info version %ld\n" ,
2120
- symbols .version );
2116
+ VG_ (umsg )( "LOAD_PDB_DEBUGINFO: "
2117
+ "Unknown .pdb symbol info version %ld\n" ,
2118
+ symbols .version );
2121
2119
}
2122
2120
2123
2121
/*
@@ -2128,7 +2126,7 @@ static void pdb_dump( const struct pdb_reader* pdb,
2128
2126
if (debug )
2129
2127
VG_ (umsg )("\n" );
2130
2128
if (VG_ (clo_verbosity ) > 1 )
2131
- VG_ (message )( Vg_UserMsg , " Reading global symbols\n" );
2129
+ VG_ (umsg )( "LOAD_PDB_DEBUGINFO: Reading global symbols\n" );
2132
2130
DEBUG_SnarfCodeView ( di , pe_avma , sectp_avma , modimage , 0 , len_modimage );
2133
2131
ML_ (dinfo_free )( modimage );
2134
2132
}
@@ -2169,7 +2167,7 @@ static void pdb_dump( const struct pdb_reader* pdb,
2169
2167
if (debug )
2170
2168
VG_ (umsg )("\n" );
2171
2169
if (VG_ (clo_verbosity ) > 1 )
2172
- VG_ (message )( Vg_UserMsg , " Reading symbols for %s\n" ,
2170
+ VG_ (umsg )( "LOAD_PDB_DEBUGINFO: Reading symbols for %s\n" ,
2173
2171
file_name );
2174
2172
n_syms_read
2175
2173
+= DEBUG_SnarfCodeView ( di , pe_avma , sectp_avma , modimage ,
@@ -2181,7 +2179,8 @@ static void pdb_dump( const struct pdb_reader* pdb,
2181
2179
if (debug )
2182
2180
VG_ (umsg )("\n" );
2183
2181
if (VG_ (clo_verbosity ) > 1 )
2184
- VG_ (message )(Vg_UserMsg , "Reading lines for %s\n" , file_name );
2182
+ VG_ (umsg )("LOAD_PDB_DEBUGINFO: "
2183
+ "Reading lines for %s\n" , file_name );
2185
2184
n_lines_read
2186
2185
+= DEBUG_SnarfLinetab ( di , pe_avma , sectp_avma ,
2187
2186
modimage + symbol_size , lineno_size );
@@ -2221,14 +2220,14 @@ static void pdb_dump( const struct pdb_reader* pdb,
2221
2220
if ( pdb -> u .jg .toc ) ML_ (dinfo_free )( pdb -> u .jg .toc );
2222
2221
2223
2222
if (VG_ (clo_verbosity ) > 1 ) {
2224
- VG_ (message )( Vg_DebugMsg ,
2225
- " # symbols read = %llu\n" , n_syms_read );
2226
- VG_ (message )( Vg_DebugMsg ,
2227
- " # lines read = %llu\n" , n_lines_read );
2228
- VG_ (message )( Vg_DebugMsg ,
2229
- " # line2s read = %llu\n" , n_line2s_read );
2230
- VG_ (message )( Vg_DebugMsg ,
2231
- " # fpos read = %llu\n" , n_fpos_read );
2223
+ VG_ (dmsg )( "LOAD_PDB_DEBUGINFO:"
2224
+ " # symbols read = %llu\n" , n_syms_read );
2225
+ VG_ (dmsg )( "LOAD_PDB_DEBUGINFO:"
2226
+ " # lines read = %llu\n" , n_lines_read );
2227
+ VG_ (dmsg )( "LOAD_PDB_DEBUGINFO:"
2228
+ " # line2s read = %llu\n" , n_line2s_read );
2229
+ VG_ (dmsg )( "LOAD_PDB_DEBUGINFO:"
2230
+ " # fpos read = %llu\n" , n_fpos_read );
2232
2231
}
2233
2232
}
2234
2233
@@ -2263,7 +2262,7 @@ Bool ML_(read_pdb_debug_info)(
2263
2262
IMAGE_SECTION_HEADER * pe_sechdr_avma ;
2264
2263
2265
2264
if (VG_ (clo_verbosity ) > 1 )
2266
- VG_ (message )( Vg_UserMsg , " Processing PDB file %s\n" , pdbname );
2265
+ VG_ (umsg )( "LOAD_PDB_DEBUGINFO: Processing PDB file %s\n" , pdbname );
2267
2266
2268
2267
dos_avma = (IMAGE_DOS_HEADER * )obj_avma ;
2269
2268
if (dos_avma -> e_magic != IMAGE_DOS_SIGNATURE )
@@ -2303,10 +2302,10 @@ Bool ML_(read_pdb_debug_info)(
2303
2302
char name [9 ];
2304
2303
VG_ (memcpy )(name , pe_sechdr_avma -> Name , 8 );
2305
2304
name [8 ] = '\0' ;
2306
- VG_ (message )( Vg_UserMsg ,
2307
- " Scanning PE section %ps at avma %#lx svma %#lx\n" ,
2308
- name , obj_avma + pe_sechdr_avma -> VirtualAddress ,
2309
- pe_sechdr_avma -> VirtualAddress );
2305
+ VG_ (umsg )( "LOAD_PDB_DEBUGINFO:"
2306
+ " Scanning PE section %ps at avma %#lx svma %#lx\n" ,
2307
+ name , obj_avma + pe_sechdr_avma -> VirtualAddress ,
2308
+ pe_sechdr_avma -> VirtualAddress );
2310
2309
}
2311
2310
2312
2311
if (pe_sechdr_avma -> Characteristics & IMAGE_SCN_MEM_DISCARDABLE )
@@ -2385,22 +2384,22 @@ Bool ML_(read_pdb_debug_info)(
2385
2384
for (i = 0 ; i < VG_ (sizeXA )(di -> fsm .maps ); i ++ ) {
2386
2385
const DebugInfoMapping * map = VG_ (indexXA )(di -> fsm .maps , i );
2387
2386
if (map -> rx )
2388
- VG_ (message )( Vg_DebugMsg ,
2389
- "rx_map: avma %#lx size %7lu foff %llu\n" ,
2390
- map -> avma , map -> size , (Off64T )map -> foff );
2387
+ VG_ (dmsg )( "LOAD_PDB_DEBUGINFO: "
2388
+ "rx_map: avma %#lx size %7lu foff %llu\n" ,
2389
+ map -> avma , map -> size , (Off64T )map -> foff );
2391
2390
}
2392
2391
for (i = 0 ; i < VG_ (sizeXA )(di -> fsm .maps ); i ++ ) {
2393
2392
const DebugInfoMapping * map = VG_ (indexXA )(di -> fsm .maps , i );
2394
2393
if (map -> rw )
2395
- VG_ (message )( Vg_DebugMsg ,
2396
- "rw_map: avma %#lx size %7lu foff %llu\n" ,
2397
- map -> avma , map -> size , (Off64T )map -> foff );
2394
+ VG_ (dmsg )( "LOAD_PDB_DEBUGINFO: "
2395
+ "rw_map: avma %#lx size %7lu foff %llu\n" ,
2396
+ map -> avma , map -> size , (Off64T )map -> foff );
2398
2397
}
2399
2398
2400
- VG_ (message )( Vg_DebugMsg ,
2401
- " text: avma %#lx svma %#lx size %7lu bias %#lx\n" ,
2402
- di -> text_avma , di -> text_svma ,
2403
- di -> text_size , di -> text_bias );
2399
+ VG_ (dmsg )( "LOAD_PDB_DEBUGINFO: "
2400
+ " text: avma %#lx svma %#lx size %7lu bias %#lx\n" ,
2401
+ di -> text_avma , di -> text_svma ,
2402
+ di -> text_size , di -> text_bias );
2404
2403
}
2405
2404
2406
2405
/*
@@ -2495,8 +2494,8 @@ HChar* ML_(find_name_of_pdb_file)( const HChar* pename )
2495
2494
VG_ (memset )(tmpname , 0 , sizeof (tmpname ));
2496
2495
fd = VG_ (mkstemp )( tmpnameroot , tmpname );
2497
2496
if (fd == -1 ) {
2498
- VG_ (message )( Vg_UserMsg ,
2499
- "Find PDB file: Can't create temporary file %s\n" , tmpname );
2497
+ VG_ (umsg )( "LOAD_PDB_DEBUGINFO: "
2498
+ "Find PDB file: Can't create temporary file %s\n" , tmpname );
2500
2499
goto out ;
2501
2500
}
2502
2501
do_cleanup = True ;
@@ -2520,8 +2519,8 @@ HChar* ML_(find_name_of_pdb_file)( const HChar* pename )
2520
2519
2521
2520
r = VG_ (system )( cmd );
2522
2521
if (r ) {
2523
- VG_ (message )( Vg_DebugMsg ,
2524
- "Find PDB file: Command failed:\n %s\n" , cmd );
2522
+ VG_ (dmsg )( "LOAD_PDB_DEBUGINFO: "
2523
+ "Find PDB file: Command failed:\n %s\n" , cmd );
2525
2524
goto out ;
2526
2525
}
2527
2526
@@ -2531,18 +2530,18 @@ HChar* ML_(find_name_of_pdb_file)( const HChar* pename )
2531
2530
2532
2531
SysRes sr = VG_ (stat )(tmpname , & stat_buf );
2533
2532
if (sr_isError (sr )) {
2534
- VG_ (umsg )("Find PDB file: can't stat %s\n" , tmpname );
2533
+ VG_ (umsg )("LOAD_PDB_DEBUGINFO: Find PDB file: can't stat %s\n" , tmpname );
2535
2534
goto out ;
2536
2535
}
2537
2536
2538
2537
Int szB = (Int )stat_buf .size ;
2539
2538
if (szB == 0 ) {
2540
- VG_ (umsg )("Find PDB file: %s is empty\n" , tmpname );
2539
+ VG_ (umsg )("LOAD_PDB_DEBUGINFO: Find PDB file: %s is empty\n" , tmpname );
2541
2540
goto out ;
2542
2541
}
2543
2542
/* 6 == strlen("X.pdb\n") */
2544
2543
if (szB < 6 || szB > 1024 /*let's say*/ ) {
2545
- VG_ (umsg )("Find PDB file: %s has implausible size %d\n" ,
2544
+ VG_ (umsg )("LOAD_PDB_DEBUGINFO: Find PDB file: %s has implausible size %d\n" ,
2546
2545
tmpname , szB );
2547
2546
goto out ;
2548
2547
}
@@ -2552,7 +2551,7 @@ HChar* ML_(find_name_of_pdb_file)( const HChar* pename )
2552
2551
2553
2552
Int nread = VG_ (read )(fd , pdbname , szB );
2554
2553
if (nread != szB ) {
2555
- VG_ (umsg )("Find PDB file: read of %s failed\n" , tmpname );
2554
+ VG_ (umsg )("LOAD_PDB_DEBUGINFO: Find PDB file: read of %s failed\n" , tmpname );
2556
2555
goto out ;
2557
2556
}
2558
2557
vg_assert (pdbname [szB ] == 0 );
@@ -2567,7 +2566,7 @@ HChar* ML_(find_name_of_pdb_file)( const HChar* pename )
2567
2566
if (pdbname [i ] == '\n' ) saw_n_crs ++ ;
2568
2567
}
2569
2568
if (!saw_dot || saw_n_crs != 1 || pdbname [szB - 1 ] != '\n' ) {
2570
- VG_ (umsg )("Find PDB file: can't make sense of: %s\n" , pdbname );
2569
+ VG_ (umsg )("LOAD_PDB_DEBUGINFO: Find PDB file: can't make sense of: %s\n" , pdbname );
2571
2570
goto out ;
2572
2571
}
2573
2572
/* Change the \n to a terminating zero, so we have a "normal" string */
0 commit comments