mirror of
https://git.suyu.dev/suyu/breakpad.git
synced 2025-12-26 09:14:58 +01:00
Module API (#32). r=waylonis, bryner
- Introduces a standard API for dealing with modules. MinidumpModule is now a concrete implementation of this API. Code may interact with single modules using the CodeModule interface, and collections of modules using its container, the CodeModules interface. - CodeModule is used directly by SymbolSupplier implementations and SourceLineResolver. Reliance on the specific implementation in MinidumpModule has been eliminated. - Module lists are now added to ProcessState objects. Module references in each stack frame are now pointers to objects in these module lists. - The sample minidump_stackwalk tool prints the module list after printing all threads' stacks. http://groups.google.com/group/airbag-dev/browse_frm/thread/a9c0550edde54cf8 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@74 4c0a9323-5329-0410-9bdc-e9ce6186880e
This commit is contained in:
parent
ed61ae0bbd
commit
db3342a10e
36 changed files with 1515 additions and 351 deletions
91
src/processor/testdata/minidump2.dump.out
vendored
91
src/processor/testdata/minidump2.dump.out
vendored
|
|
@ -200,13 +200,16 @@ MDRawModule
|
|||
cv_record.rva = 0x132c
|
||||
misc_record.data_size = 0
|
||||
misc_record.rva = 0x0
|
||||
(module_name) = "c:\test_app.exe"
|
||||
(code_file) = "c:\test_app.exe"
|
||||
(code_identifier) = "454fa44d2b000"
|
||||
(cv_record).cv_signature = 0x53445352
|
||||
(cv_record).signature = 8ddb7e9a-3657-4893-8d6e-b08b1dca31aa
|
||||
(cv_record).age = 1
|
||||
(cv_record).pdb_file_name = "c:\test_app.pdb"
|
||||
(misc_record) = (null)
|
||||
(debug_filename) = "c:\test_app.pdb"
|
||||
(debug_file) = "c:\test_app.pdb"
|
||||
(debug_identifier) = "8DDB7E9A365748938D6EB08B1DCA31AA1"
|
||||
(version) = ""
|
||||
|
||||
module[1]
|
||||
MDRawModule
|
||||
|
|
@ -229,13 +232,16 @@ MDRawModule
|
|||
cv_record.rva = 0x1354
|
||||
misc_record.data_size = 0
|
||||
misc_record.rva = 0x0
|
||||
(module_name) = "C:\WINDOWS\system32\ntdll.dll"
|
||||
(code_file) = "C:\WINDOWS\system32\ntdll.dll"
|
||||
(code_identifier) = "411096b4b0000"
|
||||
(cv_record).cv_signature = 0x53445352
|
||||
(cv_record).signature = 36515fb5-d043-45e4-91f6-72fa2e2878c0
|
||||
(cv_record).age = 2
|
||||
(cv_record).pdb_file_name = "ntdll.pdb"
|
||||
(misc_record) = (null)
|
||||
(debug_filename) = "ntdll.pdb"
|
||||
(debug_file) = "ntdll.pdb"
|
||||
(debug_identifier) = "36515FB5D04345E491F672FA2E2878C02"
|
||||
(version) = "5.1.2600.2180"
|
||||
|
||||
module[2]
|
||||
MDRawModule
|
||||
|
|
@ -258,13 +264,16 @@ MDRawModule
|
|||
cv_record.rva = 0x1376
|
||||
misc_record.data_size = 0
|
||||
misc_record.rva = 0x0
|
||||
(module_name) = "C:\WINDOWS\system32\kernel32.dll"
|
||||
(code_file) = "C:\WINDOWS\system32\kernel32.dll"
|
||||
(code_identifier) = "44ab9a84f4000"
|
||||
(cv_record).cv_signature = 0x53445352
|
||||
(cv_record).signature = bce8785c-57b4-4245-a669-896b6a19b954
|
||||
(cv_record).age = 2
|
||||
(cv_record).pdb_file_name = "kernel32.pdb"
|
||||
(misc_record) = (null)
|
||||
(debug_filename) = "kernel32.pdb"
|
||||
(debug_file) = "kernel32.pdb"
|
||||
(debug_identifier) = "BCE8785C57B44245A669896B6A19B9542"
|
||||
(version) = "5.1.2600.2945"
|
||||
|
||||
module[3]
|
||||
MDRawModule
|
||||
|
|
@ -287,13 +296,16 @@ MDRawModule
|
|||
cv_record.rva = 0x139b
|
||||
misc_record.data_size = 0
|
||||
misc_record.rva = 0x0
|
||||
(module_name) = "C:\WINDOWS\system32\ole32.dll"
|
||||
(code_file) = "C:\WINDOWS\system32\ole32.dll"
|
||||
(code_identifier) = "42e5be9313d000"
|
||||
(cv_record).cv_signature = 0x53445352
|
||||
(cv_record).signature = 683b65b2-46f4-4187-96d2-ee6d4c55eb11
|
||||
(cv_record).age = 2
|
||||
(cv_record).pdb_file_name = "ole32.pdb"
|
||||
(misc_record) = (null)
|
||||
(debug_filename) = "ole32.pdb"
|
||||
(debug_file) = "ole32.pdb"
|
||||
(debug_identifier) = "683B65B246F4418796D2EE6D4C55EB112"
|
||||
(version) = "5.1.2600.2726"
|
||||
|
||||
module[4]
|
||||
MDRawModule
|
||||
|
|
@ -316,13 +328,16 @@ MDRawModule
|
|||
cv_record.rva = 0x13bd
|
||||
misc_record.data_size = 0
|
||||
misc_record.rva = 0x0
|
||||
(module_name) = "C:\WINDOWS\system32\advapi32.dll"
|
||||
(code_file) = "C:\WINDOWS\system32\advapi32.dll"
|
||||
(code_identifier) = "411096a79b000"
|
||||
(cv_record).cv_signature = 0x53445352
|
||||
(cv_record).signature = 455d6c5f-184d-45bb-b5c5-f30f82975114
|
||||
(cv_record).age = 2
|
||||
(cv_record).pdb_file_name = "advapi32.pdb"
|
||||
(misc_record) = (null)
|
||||
(debug_filename) = "advapi32.pdb"
|
||||
(debug_file) = "advapi32.pdb"
|
||||
(debug_identifier) = "455D6C5F184D45BBB5C5F30F829751142"
|
||||
(version) = "5.1.2600.2180"
|
||||
|
||||
module[5]
|
||||
MDRawModule
|
||||
|
|
@ -345,13 +360,16 @@ MDRawModule
|
|||
cv_record.rva = 0x13e2
|
||||
misc_record.data_size = 0
|
||||
misc_record.rva = 0x0
|
||||
(module_name) = "C:\WINDOWS\system32\rpcrt4.dll"
|
||||
(code_file) = "C:\WINDOWS\system32\rpcrt4.dll"
|
||||
(code_identifier) = "411096ae91000"
|
||||
(cv_record).cv_signature = 0x53445352
|
||||
(cv_record).signature = bea45a72-1da1-41da-a3ba-86b3a2031153
|
||||
(cv_record).age = 2
|
||||
(cv_record).pdb_file_name = "rpcrt4.pdb"
|
||||
(misc_record) = (null)
|
||||
(debug_filename) = "rpcrt4.pdb"
|
||||
(debug_file) = "rpcrt4.pdb"
|
||||
(debug_identifier) = "BEA45A721DA141DAA3BA86B3A20311532"
|
||||
(version) = "5.1.2600.2180"
|
||||
|
||||
module[6]
|
||||
MDRawModule
|
||||
|
|
@ -374,13 +392,16 @@ MDRawModule
|
|||
cv_record.rva = 0x1405
|
||||
misc_record.data_size = 0
|
||||
misc_record.rva = 0x0
|
||||
(module_name) = "C:\WINDOWS\system32\gdi32.dll"
|
||||
(code_file) = "C:\WINDOWS\system32\gdi32.dll"
|
||||
(code_identifier) = "43b34feb47000"
|
||||
(cv_record).cv_signature = 0x53445352
|
||||
(cv_record).signature = c0ea66be-00a6-4bd7-aef7-9e443a91869c
|
||||
(cv_record).age = 2
|
||||
(cv_record).pdb_file_name = "gdi32.pdb"
|
||||
(misc_record) = (null)
|
||||
(debug_filename) = "gdi32.pdb"
|
||||
(debug_file) = "gdi32.pdb"
|
||||
(debug_identifier) = "C0EA66BE00A64BD7AEF79E443A91869C2"
|
||||
(version) = "5.1.2600.2818"
|
||||
|
||||
module[7]
|
||||
MDRawModule
|
||||
|
|
@ -403,13 +424,16 @@ MDRawModule
|
|||
cv_record.rva = 0x1427
|
||||
misc_record.data_size = 0
|
||||
misc_record.rva = 0x0
|
||||
(module_name) = "C:\WINDOWS\system32\user32.dll"
|
||||
(code_file) = "C:\WINDOWS\system32\user32.dll"
|
||||
(code_identifier) = "4226015990000"
|
||||
(cv_record).cv_signature = 0x53445352
|
||||
(cv_record).signature = ee2b714d-83a3-4c9d-8802-7621272f8326
|
||||
(cv_record).age = 2
|
||||
(cv_record).pdb_file_name = "user32.pdb"
|
||||
(misc_record) = (null)
|
||||
(debug_filename) = "user32.pdb"
|
||||
(debug_file) = "user32.pdb"
|
||||
(debug_identifier) = "EE2B714D83A34C9D88027621272F83262"
|
||||
(version) = "5.1.2600.2622"
|
||||
|
||||
module[8]
|
||||
MDRawModule
|
||||
|
|
@ -432,13 +456,16 @@ MDRawModule
|
|||
cv_record.rva = 0x144a
|
||||
misc_record.data_size = 0
|
||||
misc_record.rva = 0x0
|
||||
(module_name) = "C:\WINDOWS\system32\msvcrt.dll"
|
||||
(code_file) = "C:\WINDOWS\system32\msvcrt.dll"
|
||||
(code_identifier) = "4110975258000"
|
||||
(cv_record).cv_signature = 0x53445352
|
||||
(cv_record).signature = a678f3c3-0ded-426b-8390-32b996987e38
|
||||
(cv_record).age = 1
|
||||
(cv_record).pdb_file_name = "msvcrt.pdb"
|
||||
(misc_record) = (null)
|
||||
(debug_filename) = "msvcrt.pdb"
|
||||
(debug_file) = "msvcrt.pdb"
|
||||
(debug_identifier) = "A678F3C30DED426B839032B996987E381"
|
||||
(version) = "7.0.2600.2180"
|
||||
|
||||
module[9]
|
||||
MDRawModule
|
||||
|
|
@ -461,13 +488,16 @@ MDRawModule
|
|||
cv_record.rva = 0x146d
|
||||
misc_record.data_size = 0
|
||||
misc_record.rva = 0x0
|
||||
(module_name) = "C:\WINDOWS\system32\imm32.dll"
|
||||
(code_file) = "C:\WINDOWS\system32\imm32.dll"
|
||||
(code_identifier) = "411096ae1d000"
|
||||
(cv_record).cv_signature = 0x53445352
|
||||
(cv_record).signature = 2c17a49c-251b-4c8e-b9e2-ad13d7d9ea16
|
||||
(cv_record).age = 2
|
||||
(cv_record).pdb_file_name = "imm32.pdb"
|
||||
(misc_record) = (null)
|
||||
(debug_filename) = "imm32.pdb"
|
||||
(debug_file) = "imm32.pdb"
|
||||
(debug_identifier) = "2C17A49C251B4C8EB9E2AD13D7D9EA162"
|
||||
(version) = "5.1.2600.2180"
|
||||
|
||||
module[10]
|
||||
MDRawModule
|
||||
|
|
@ -490,13 +520,16 @@ MDRawModule
|
|||
cv_record.rva = 0x148f
|
||||
misc_record.data_size = 0
|
||||
misc_record.rva = 0x0
|
||||
(module_name) = "C:\WINDOWS\system32\dbghelp.dll"
|
||||
(code_file) = "C:\WINDOWS\system32\dbghelp.dll"
|
||||
(code_identifier) = "4110969aa1000"
|
||||
(cv_record).cv_signature = 0x53445352
|
||||
(cv_record).signature = 39559573-e21b-46f2-8e28-6923be9e6a76
|
||||
(cv_record).age = 1
|
||||
(cv_record).pdb_file_name = "dbghelp.pdb"
|
||||
(misc_record) = (null)
|
||||
(debug_filename) = "dbghelp.pdb"
|
||||
(debug_file) = "dbghelp.pdb"
|
||||
(debug_identifier) = "39559573E21B46F28E286923BE9E6A761"
|
||||
(version) = "5.1.2600.2180"
|
||||
|
||||
module[11]
|
||||
MDRawModule
|
||||
|
|
@ -519,13 +552,16 @@ MDRawModule
|
|||
cv_record.rva = 0x14b3
|
||||
misc_record.data_size = 0
|
||||
misc_record.rva = 0x0
|
||||
(module_name) = "C:\WINDOWS\system32\version.dll"
|
||||
(code_file) = "C:\WINDOWS\system32\version.dll"
|
||||
(code_identifier) = "411096b78000"
|
||||
(cv_record).cv_signature = 0x53445352
|
||||
(cv_record).signature = 180a90c4-0384-463e-82dd-c45b2c8ab76e
|
||||
(cv_record).age = 2
|
||||
(cv_record).pdb_file_name = "version.pdb"
|
||||
(misc_record) = (null)
|
||||
(debug_filename) = "version.pdb"
|
||||
(debug_file) = "version.pdb"
|
||||
(debug_identifier) = "180A90C40384463E82DDC45B2C8AB76E2"
|
||||
(version) = "5.1.2600.2180"
|
||||
|
||||
module[12]
|
||||
MDRawModule
|
||||
|
|
@ -548,13 +584,16 @@ MDRawModule
|
|||
cv_record.rva = 0x14d7
|
||||
misc_record.data_size = 0
|
||||
misc_record.rva = 0x0
|
||||
(module_name) = "C:\WINDOWS\system32\psapi.dll"
|
||||
(code_file) = "C:\WINDOWS\system32\psapi.dll"
|
||||
(code_identifier) = "411096cab000"
|
||||
(cv_record).cv_signature = 0x53445352
|
||||
(cv_record).signature = a5c3a1f9-689f-43d8-ad22-8a0929388970
|
||||
(cv_record).age = 2
|
||||
(cv_record).pdb_file_name = "psapi.pdb"
|
||||
(misc_record) = (null)
|
||||
(debug_filename) = "psapi.pdb"
|
||||
(debug_file) = "psapi.pdb"
|
||||
(debug_identifier) = "A5C3A1F9689F43D8AD228A09293889702"
|
||||
(version) = "5.1.2600.2180"
|
||||
|
||||
MinidumpMemoryList
|
||||
region_count = 3
|
||||
|
|
|
|||
15
src/processor/testdata/minidump2.stackwalk.out
vendored
15
src/processor/testdata/minidump2.stackwalk.out
vendored
|
|
@ -17,3 +17,18 @@ Thread 0 (crashed)
|
|||
eip = 0x0040395c esp = 0x0012ff78 ebp = 0x0012ffc0
|
||||
3 kernel32.dll!BaseProcessStart + 0x22
|
||||
eip = 0x7c816fd7 esp = 0x0012ffc8 ebp = 0x0012fff0
|
||||
|
||||
Loaded modules:
|
||||
0x00400000 - 0x0042afff test_app.exe ??? (main)
|
||||
0x59a60000 - 0x59b00fff dbghelp.dll 5.1.2600.2180
|
||||
0x76390000 - 0x763acfff imm32.dll 5.1.2600.2180
|
||||
0x76bf0000 - 0x76bfafff psapi.dll 5.1.2600.2180
|
||||
0x774e0000 - 0x7761cfff ole32.dll 5.1.2600.2726
|
||||
0x77c00000 - 0x77c07fff version.dll 5.1.2600.2180
|
||||
0x77c10000 - 0x77c67fff msvcrt.dll 7.0.2600.2180
|
||||
0x77d40000 - 0x77dcffff user32.dll 5.1.2600.2622
|
||||
0x77dd0000 - 0x77e6afff advapi32.dll 5.1.2600.2180
|
||||
0x77e70000 - 0x77f00fff rpcrt4.dll 5.1.2600.2180
|
||||
0x77f10000 - 0x77f56fff gdi32.dll 5.1.2600.2818
|
||||
0x7c800000 - 0x7c8f3fff kernel32.dll 5.1.2600.2945
|
||||
0x7c900000 - 0x7c9affff ntdll.dll 5.1.2600.2180
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue