From cb9fd5b773b25473770b5ddda53b0a2e9f4c7703 Mon Sep 17 00:00:00 2001 From: mmentovai Date: Fri, 8 Sep 2006 18:03:56 +0000 Subject: Make SourceLineResolver use RangeMap (#13). r=bryner - Eliminate MemAddrMap from source_line_resolver.cc and adapt it to use RangeMap, also used by minidump.cc. - RangeMap operates on both a base address and a size, where MemAddrMap only used a base address, so the dumped symbol file format is modified to include size information. dump_syms produces these files and SourceLineResolver consumes them. - Provide updated test data conforming to the new dumped symbol format. http://groups.google.com/group/airbag-dev/browse_thread/thread/e9403cf3ad6336a1 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@21 4c0a9323-5329-0410-9bdc-e9ce6186880e --- src/tools/windows/dump_syms/dump_syms.cc | 2 +- .../windows/dump_syms/pdb_source_line_writer.cc | 10 +- .../dump_syms/testdata/dump_syms_regtest.out | 702 ++++++++++----------- 3 files changed, 360 insertions(+), 354 deletions(-) (limited to 'src/tools') diff --git a/src/tools/windows/dump_syms/dump_syms.cc b/src/tools/windows/dump_syms/dump_syms.cc index 314e3ae4..c0fe3483 100644 --- a/src/tools/windows/dump_syms/dump_syms.cc +++ b/src/tools/windows/dump_syms/dump_syms.cc @@ -23,7 +23,7 @@ using std::wstring; int main(int argc, char **argv) { if (argc < 2) { - fprintf(stderr, "Usage: %s ", argv[0]); + fprintf(stderr, "Usage: %s \n", argv[0]); return 1; } diff --git a/src/tools/windows/dump_syms/pdb_source_line_writer.cc b/src/tools/windows/dump_syms/pdb_source_line_writer.cc index 61c22514..0d1f96ea 100644 --- a/src/tools/windows/dump_syms/pdb_source_line_writer.cc +++ b/src/tools/windows/dump_syms/pdb_source_line_writer.cc @@ -65,6 +65,12 @@ bool PDBSourceLineWriter::PrintLines(IDiaEnumLineNumbers *lines) { return false; } + DWORD length; + if (FAILED(line->get_length(&length))) { + fprintf(stderr, "failed to get line code length\n"); + return false; + } + DWORD source_id; if (FAILED(line->get_sourceFileId(&source_id))) { fprintf(stderr, "failed to get line source file id\n"); @@ -77,7 +83,7 @@ bool PDBSourceLineWriter::PrintLines(IDiaEnumLineNumbers *lines) { return false; } - fprintf(output_, "%x %d %d\n", rva, line_num, source_id); + fprintf(output_, "%x %x %d %d\n", rva, length, line_num, source_id); line.Release(); } return true; @@ -113,7 +119,7 @@ bool PDBSourceLineWriter::PrintFunction(IDiaSymbol *function) { return false; } - fwprintf(output_, L"FUNC %x %s\n", rva, name); + fwprintf(output_, L"FUNC %x %llx %s\n", rva, length, name); if (!PrintLines(lines)) { return false; } diff --git a/src/tools/windows/dump_syms/testdata/dump_syms_regtest.out b/src/tools/windows/dump_syms/testdata/dump_syms_regtest.out index fc85d0ec..8ca9d3dc 100755 --- a/src/tools/windows/dump_syms/testdata/dump_syms_regtest.out +++ b/src/tools/windows/dump_syms/testdata/dump_syms_regtest.out @@ -1179,354 +1179,354 @@ FILE 1178 f:\rtm\public\sdk\inc\ddbanned.h FILE 1179 f:\rtm\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h FILE 1180 f:\rtm\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h FILE 1181 f:\rtm\public\sdk\inc\tvout.h -FUNC 1000 main -1000 24 172 -1039 25 172 -104a 26 172 -1065 27 172 -106f 31 172 -1092 32 172 -109b 33 172 -109d 36 172 -10a6 37 172 -10ed 38 172 -1105 39 172 -1120 42 172 -1139 43 172 -1140 44 172 -1142 47 172 -114b 48 172 -1161 49 172 -FUNC 1190 ATL::CComBSTR::~CComBSTR -1190 1351 28 -1190 1352 28 -1199 1353 28 -FUNC 11a0 ATL::CComPtr::~CComPtr -11a0 25 26 -11a0 26 26 -FUNC 11b0 airbag::PDBSourceLineWriter::Close -11b0 212 26 -11b0 213 26 -11c4 214 26 -FUNC 11d0 airbag::PDBSourceLineWriter::PDBSourceLineWriter -11d0 22 26 -11df 23 26 -FUNC 11e0 airbag::PDBSourceLineWriter::Open -11e0 28 26 -1204 29 26 -1218 31 26 -1224 32 26 -123c 33 26 -123e 53 26 -1251 36 26 -1259 37 26 -127e 39 26 -1293 40 26 -12b0 53 26 -12c3 43 26 -12e6 44 26 -12eb 45 26 -12ed 48 26 -12fe 49 26 -1316 52 26 -1330 53 26 -FUNC 1350 airbag::PDBSourceLineWriter::PrintLines -1350 55 26 -1379 58 26 -137f 61 26 -13bb 63 26 -13d4 69 26 -13ed 75 26 -1406 80 26 -1420 81 26 -1454 83 26 -146e 84 26 -1484 64 26 -1495 65 26 -14b4 70 26 -14c5 71 26 -14e4 76 26 -14e9 77 26 -FUNC 14f0 airbag::PDBSourceLineWriter::PrintFunction -14f0 86 26 -1518 89 26 -151e 90 26 -1537 91 26 -154f 113 26 -1554 92 26 -155c 121 26 -1571 94 26 -1580 95 26 -1595 96 26 -15a5 121 26 -15ba 100 26 -15cb 101 26 -15d0 102 26 -15d5 106 26 -15e6 107 26 -15fb 108 26 -1608 111 26 -160c 112 26 -162e 113 26 -164b 116 26 -1664 117 26 -1675 118 26 -1695 120 26 -16ae 121 26 -FUNC 16d0 airbag::PDBSourceLineWriter::PrintSourceFiles -16d0 123 26 -16f9 124 26 -16ff 125 26 -1716 126 26 -172e 134 26 -1746 127 26 -1748 162 26 -175c 130 26 -1760 132 26 -1781 133 26 -1799 142 26 -17b2 137 26 -17b6 139 26 -17fb 140 26 -17ff 141 26 -1822 144 26 -1826 145 26 -185b 147 26 -1874 151 26 -1878 152 26 -1896 156 26 -18ab 157 26 -18c2 158 26 -18ee 159 26 -1902 160 26 -194c 161 26 -198f 162 26 -19a3 142 26 -19d6 148 26 -19ed 153 26 -FUNC 1a00 airbag::PDBSourceLineWriter::PrintFunctions -1a00 164 26 -1a27 165 26 -1a2d 166 26 -1a44 167 26 -1a5c 174 26 -1a74 168 26 -1a76 199 26 -1a88 171 26 -1a8c 172 26 -1aa9 173 26 -1ac1 174 26 -1ad7 178 26 -1af0 179 26 -1af5 180 26 -1b00 186 26 -1b19 190 26 -1b20 191 26 -1b30 195 26 -1b44 196 26 -1b67 198 26 -1b95 199 26 -1ba7 187 26 -1bac 188 26 -FUNC 1bc0 airbag::PDBSourceLineWriter::WriteMap -1bc0 201 26 -1bc0 203 26 -1bcd 204 26 -1bdf 208 26 -1be8 210 26 -1beb 208 26 -1bef 209 26 -1bf2 210 26 -FUNC 1c02 __security_check_cookie -1c02 52 1111 -1c02 55 1111 -1c08 56 1111 -1c0a 57 1111 -1c0c 59 1111 -FUNC 1c11 pre_cpp_init -1c11 310 576 -1c11 312 576 -1c1b 322 576 -1c20 330 576 -1c4a 334 576 -1c53 335 576 -1c5b 337 576 -FUNC 1c5c __tmainCRTStartup -1c5c 410 576 -1c68 433 576 -1c6d 458 576 -1c76 459 576 -1c7e 460 576 -1c8b 462 576 -1c8f 464 576 -1c95 465 576 -1c97 472 576 -1ca2 473 576 -1ca7 475 576 -1cb0 477 576 -1cba 479 576 -1cc3 481 576 -1cc9 483 576 -1cde 485 576 -1cef 493 576 -1cf5 499 576 -1cfe 501 576 -1d0f 502 576 -1d19 505 576 -1d1e 510 576 -1d26 521 576 -1d3d 523 576 -1d47 585 576 -1d54 586 576 -1d73 596 576 -1d7b 597 576 -1d82 603 576 -1d99 609 576 -1da1 616 576 -1dab 617 576 -1db2 619 576 -1dba 620 576 -1dc0 621 576 -1dc7 623 576 -1dcc 624 576 -FUNC 1dd2 pre_c_init -1dd2 221 576 -1dd2 225 576 -1e32 233 576 -1e3f 241 576 -1e53 246 576 -1e61 247 576 -1e6f 254 576 -1e7b 261 576 -1e80 272 576 -1e85 279 576 -1e8e 280 576 -1e9a 283 576 -1e9f 287 576 -1ea8 289 576 -1eb1 292 576 -1eb3 293 576 -FUNC 1eb4 mainCRTStartup -1eb4 393 576 -1eb4 400 576 -1eb9 402 576 -FUNC 1ebe __report_gsfailure -1ebe 140 730 -1ec7 170 730 -1ecc 171 730 -1ed2 172 730 -1ed8 173 730 -1ede 174 730 -1ee4 175 730 -1eea 176 730 -1ef1 177 730 -1ef8 178 730 -1eff 179 730 -1f06 180 730 -1f0d 181 730 -1f14 182 730 -1f15 183 730 -1f1b 190 730 -1f1e 191 730 -1f23 192 730 -1f26 193 730 -1f2b 194 730 -1f2e 195 730 -1f33 201 730 -1f39 204 730 -1f43 206 730 -1f4d 285 730 -1f57 286 730 -1f61 293 730 -1f6c 294 730 -1f77 297 730 -1f82 298 730 -1f8a 302 730 -1f92 304 730 -1f9d 313 730 -1fa6 315 730 -1fae 319 730 -1fc0 320 730 -FUNC 1fc8 _onexit -1fc8 79 481 -1fd4 84 481 -1fe6 86 481 -1feb 90 481 -1ff7 103 481 -1fff 105 481 -2003 107 481 -200e 108 481 -2019 110 481 -202c 112 481 -203c 113 481 -2049 115 481 -2055 120 481 -2058 121 481 -205e 117 481 -FUNC 2067 atexit -2067 126 481 -2067 127 481 -2078 128 481 -FUNC 2079 _RTC_Initialize -FUNC 209d _RTC_Terminate -FUNC 20d0 _ValidateImageBase -20d0 44 893 -20d0 50 893 -20db 52 893 -20dd 68 893 -20de 55 893 -20e3 56 893 -20e9 58 893 -20eb 62 893 -20f8 68 893 -FUNC 2100 _FindPESection -2100 92 893 -2100 99 893 -2109 108 893 -2122 111 893 -2132 108 893 -213c 123 893 -2141 124 893 -FUNC 2142 _IsNonwritableInCurrentImage -2142 152 893 -214e 159 893 -2152 167 893 -2160 169 893 -2162 177 893 -2167 178 893 -2170 179 893 -2172 181 893 -2174 188 893 -2188 190 893 -219f 196 893 -21a8 198 893 -FUNC 21bc __SEH_prolog4 -FUNC 2201 __SEH_epilog4 -FUNC 2215 _except_handler4 -FUNC 2238 _setdefaultprecision -2238 30 1040 -2239 31 1040 -2260 32 1040 -FUNC 2261 _setargv -2261 56 616 -2261 57 616 -2263 58 616 -FUNC 2264 __security_init_cookie -2264 97 770 -226a 117 770 -228b 119 770 -2292 120 770 -2295 170 770 -229f 175 770 -22a5 178 770 -22ad 179 770 -22b5 180 770 -22bd 182 770 -22cd 187 770 -22cf 204 770 -22d3 206 770 -22da 209 770 -22de 211 770 -22e5 215 770 -22eb 216 770 -22f6 218 770 +FUNC 1000 187 main +1000 39 24 172 +1039 11 25 172 +104a 1b 26 172 +1065 a 27 172 +106f 23 31 172 +1092 9 32 172 +109b 2 33 172 +109d 9 36 172 +10a6 47 37 172 +10ed 18 38 172 +1105 1b 39 172 +1120 19 42 172 +1139 7 43 172 +1140 2 44 172 +1142 9 47 172 +114b 16 48 172 +1161 26 49 172 +FUNC 1190 a ATL::CComBSTR::~CComBSTR +1190 0 1351 28 +1190 9 1352 28 +1199 1 1353 28 +FUNC 11a0 f ATL::CComPtr::~CComPtr +11a0 0 25 26 +11a0 f 26 26 +FUNC 11b0 15 airbag::PDBSourceLineWriter::Close +11b0 0 212 26 +11b0 14 213 26 +11c4 1 214 26 +FUNC 11d0 10 airbag::PDBSourceLineWriter::PDBSourceLineWriter +11d0 f 22 26 +11df 1 23 26 +FUNC 11e0 163 airbag::PDBSourceLineWriter::Open +11e0 24 28 26 +1204 14 29 26 +1218 c 31 26 +1224 18 32 26 +123c 2 33 26 +123e 13 53 26 +1251 8 36 26 +1259 25 37 26 +127e 15 39 26 +1293 1d 40 26 +12b0 13 53 26 +12c3 23 43 26 +12e6 5 44 26 +12eb 2 45 26 +12ed 11 48 26 +12fe 18 49 26 +1316 1a 52 26 +1330 13 53 26 +FUNC 1350 19b airbag::PDBSourceLineWriter::PrintLines +1350 29 55 26 +1379 6 58 26 +137f 3c 61 26 +13bb 19 63 26 +13d4 19 69 26 +13ed 19 75 26 +1406 1a 80 26 +1420 34 81 26 +1454 1a 83 26 +146e 16 84 26 +1484 11 64 26 +1495 1f 65 26 +14b4 11 70 26 +14c5 1f 71 26 +14e4 5 76 26 +14e9 2 77 26 +FUNC 14f0 1d3 airbag::PDBSourceLineWriter::PrintFunction +14f0 28 86 26 +1518 6 89 26 +151e 19 90 26 +1537 18 91 26 +154f 5 113 26 +1554 8 92 26 +155c 15 121 26 +1571 f 94 26 +1580 15 95 26 +1595 10 96 26 +15a5 15 121 26 +15ba 11 100 26 +15cb 5 101 26 +15d0 5 102 26 +15d5 11 106 26 +15e6 15 107 26 +15fb d 108 26 +1608 4 111 26 +160c 22 112 26 +162e 1d 113 26 +164b 19 116 26 +1664 11 117 26 +1675 20 118 26 +1695 19 120 26 +16ae 15 121 26 +FUNC 16d0 326 airbag::PDBSourceLineWriter::PrintSourceFiles +16d0 29 123 26 +16f9 6 124 26 +16ff 17 125 26 +1716 18 126 26 +172e 18 134 26 +1746 2 127 26 +1748 14 162 26 +175c 4 130 26 +1760 21 132 26 +1781 18 133 26 +1799 19 142 26 +17b2 4 137 26 +17b6 45 139 26 +17fb 4 140 26 +17ff 23 141 26 +1822 4 144 26 +1826 35 145 26 +185b 19 147 26 +1874 4 151 26 +1878 1e 152 26 +1896 15 156 26 +18ab 17 157 26 +18c2 2c 158 26 +18ee 14 159 26 +1902 4a 160 26 +194c 43 161 26 +198f 14 162 26 +19a3 33 142 26 +19d6 17 148 26 +19ed 9 153 26 +FUNC 1a00 1b1 airbag::PDBSourceLineWriter::PrintFunctions +1a00 27 164 26 +1a27 6 165 26 +1a2d 17 166 26 +1a44 18 167 26 +1a5c 18 174 26 +1a74 2 168 26 +1a76 12 199 26 +1a88 4 171 26 +1a8c 1d 172 26 +1aa9 18 173 26 +1ac1 16 174 26 +1ad7 19 178 26 +1af0 5 179 26 +1af5 b 180 26 +1b00 19 186 26 +1b19 7 190 26 +1b20 10 191 26 +1b30 14 195 26 +1b44 23 196 26 +1b67 2e 198 26 +1b95 12 199 26 +1ba7 5 187 26 +1bac 5 188 26 +FUNC 1bc0 35 airbag::PDBSourceLineWriter::WriteMap +1bc0 0 201 26 +1bc0 d 203 26 +1bcd 12 204 26 +1bdf 9 208 26 +1be8 3 210 26 +1beb 4 208 26 +1bef 3 209 26 +1bf2 3 210 26 +FUNC 1c02 f __security_check_cookie +1c02 0 52 1111 +1c02 6 55 1111 +1c08 2 56 1111 +1c0a 2 57 1111 +1c0c 5 59 1111 +FUNC 1c11 4b pre_cpp_init +1c11 0 310 576 +1c11 a 312 576 +1c1b 5 322 576 +1c20 2a 330 576 +1c4a 9 334 576 +1c53 8 335 576 +1c5b 1 337 576 +FUNC 1c5c 176 __tmainCRTStartup +1c5c c 410 576 +1c68 5 433 576 +1c6d 9 458 576 +1c76 8 459 576 +1c7e d 460 576 +1c8b 4 462 576 +1c8f 6 464 576 +1c95 2 465 576 +1c97 b 472 576 +1ca2 5 473 576 +1ca7 9 475 576 +1cb0 a 477 576 +1cba 9 479 576 +1cc3 6 481 576 +1cc9 15 483 576 +1cde 11 485 576 +1cef 6 493 576 +1cf5 9 499 576 +1cfe 11 501 576 +1d0f a 502 576 +1d19 5 505 576 +1d1e 8 510 576 +1d26 17 521 576 +1d3d a 523 576 +1d47 d 585 576 +1d54 1f 586 576 +1d73 8 596 576 +1d7b 7 597 576 +1d82 17 603 576 +1d99 8 609 576 +1da1 a 616 576 +1dab 7 617 576 +1db2 8 619 576 +1dba 6 620 576 +1dc0 7 621 576 +1dc7 5 623 576 +1dcc 6 624 576 +FUNC 1dd2 e2 pre_c_init +1dd2 0 221 576 +1dd2 60 225 576 +1e32 d 233 576 +1e3f 14 241 576 +1e53 e 246 576 +1e61 e 247 576 +1e6f c 254 576 +1e7b 5 261 576 +1e80 5 272 576 +1e85 9 279 576 +1e8e c 280 576 +1e9a 5 283 576 +1e9f 9 287 576 +1ea8 9 289 576 +1eb1 2 292 576 +1eb3 1 293 576 +FUNC 1eb4 a mainCRTStartup +1eb4 0 393 576 +1eb4 5 400 576 +1eb9 5 402 576 +FUNC 1ebe 104 __report_gsfailure +1ebe 9 140 730 +1ec7 5 170 730 +1ecc 6 171 730 +1ed2 6 172 730 +1ed8 6 173 730 +1ede 6 174 730 +1ee4 6 175 730 +1eea 7 176 730 +1ef1 7 177 730 +1ef8 7 178 730 +1eff 7 179 730 +1f06 7 180 730 +1f0d 7 181 730 +1f14 1 182 730 +1f15 6 183 730 +1f1b 3 190 730 +1f1e 5 191 730 +1f23 3 192 730 +1f26 5 193 730 +1f2b 3 194 730 +1f2e 5 195 730 +1f33 6 201 730 +1f39 a 204 730 +1f43 a 206 730 +1f4d a 285 730 +1f57 a 286 730 +1f61 b 293 730 +1f6c b 294 730 +1f77 b 297 730 +1f82 8 298 730 +1f8a 8 302 730 +1f92 b 304 730 +1f9d 9 313 730 +1fa6 8 315 730 +1fae 12 319 730 +1fc0 2 320 730 +FUNC 1fc8 9f _onexit +1fc8 c 79 481 +1fd4 12 84 481 +1fe6 5 86 481 +1feb c 90 481 +1ff7 8 103 481 +1fff 4 105 481 +2003 b 107 481 +200e b 108 481 +2019 13 110 481 +202c 10 112 481 +203c d 113 481 +2049 c 115 481 +2055 3 120 481 +2058 6 121 481 +205e 9 117 481 +FUNC 2067 12 atexit +2067 0 126 481 +2067 11 127 481 +2078 1 128 481 +FUNC 2079 24 _RTC_Initialize +FUNC 209d 24 _RTC_Terminate +FUNC 20d0 29 _ValidateImageBase +20d0 0 44 893 +20d0 b 50 893 +20db 2 52 893 +20dd 1 68 893 +20de 5 55 893 +20e3 6 56 893 +20e9 2 58 893 +20eb d 62 893 +20f8 1 68 893 +FUNC 2100 42 _FindPESection +2100 0 92 893 +2100 9 99 893 +2109 19 108 893 +2122 10 111 893 +2132 a 108 893 +213c 5 123 893 +2141 1 124 893 +FUNC 2142 6c _IsNonwritableInCurrentImage +2142 c 152 893 +214e 4 159 893 +2152 e 167 893 +2160 2 169 893 +2162 5 177 893 +2167 9 178 893 +2170 2 179 893 +2172 2 181 893 +2174 14 188 893 +2188 17 190 893 +219f 9 196 893 +21a8 6 198 893 +FUNC 21bc 45 __SEH_prolog4 +FUNC 2201 14 __SEH_epilog4 +FUNC 2215 23 _except_handler4 +FUNC 2238 29 _setdefaultprecision +2238 1 30 1040 +2239 27 31 1040 +2260 1 32 1040 +FUNC 2261 3 _setargv +2261 0 56 616 +2261 2 57 616 +2263 1 58 616 +FUNC 2264 94 __security_init_cookie +2264 6 97 770 +226a 21 117 770 +228b 7 119 770 +2292 3 120 770 +2295 a 170 770 +229f 6 175 770 +22a5 8 178 770 +22ad 8 179 770 +22b5 8 180 770 +22bd 10 182 770 +22cd 2 187 770 +22cf 4 204 770 +22d3 7 206 770 +22da 4 209 770 +22de 7 211 770 +22e5 6 215 770 +22eb b 216 770 +22f6 2 218 770 -- cgit v1.2.1