aboutsummaryrefslogtreecommitdiff
path: root/src/processor
diff options
context:
space:
mode:
authorted.mielczarek <ted.mielczarek@4c0a9323-5329-0410-9bdc-e9ce6186880e>2007-05-16 18:11:36 +0000
committerted.mielczarek <ted.mielczarek@4c0a9323-5329-0410-9bdc-e9ce6186880e>2007-05-16 18:11:36 +0000
commit95be2b659e10bad42520e13857623a05a2515171 (patch)
tree0753790cb24ff3330395a6a46f4bc0a457dad178 /src/processor
parentIssue 140 - Fill in some more cpu information on OS X x86 dumps. r=mento (diff)
downloadbreakpad-95be2b659e10bad42520e13857623a05a2515171.tar.xz
Issue 168 - Output debug file and debug identifier in minidump_stackwalk machine-readable output. r=mento
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@168 4c0a9323-5329-0410-9bdc-e9ce6186880e
Diffstat (limited to 'src/processor')
-rw-r--r--src/processor/minidump_stackwalk.cc9
-rw-r--r--src/processor/testdata/minidump2.stackwalk.machine_readable.out26
2 files changed, 20 insertions, 15 deletions
diff --git a/src/processor/minidump_stackwalk.cc b/src/processor/minidump_stackwalk.cc
index 8c8952f6..6be2551e 100644
--- a/src/processor/minidump_stackwalk.cc
+++ b/src/processor/minidump_stackwalk.cc
@@ -255,7 +255,8 @@ static void PrintModules(const CodeModules *modules) {
// PrintModulesMachineReadable outputs a list of loaded modules,
// one per line, in the following machine-readable pipe-delimited
// text format:
-// Module|{Module Filename}|{Version}|{Base Address}|{Max Address}|{Main}
+// Module|{Module Filename}|{Version}|{Debug Filename}|{Debug Identifier}|
+// {Base Address}|{Max Address}|{Main}
static void PrintModulesMachineReadable(const CodeModules *modules) {
if (!modules)
return;
@@ -272,10 +273,14 @@ static void PrintModulesMachineReadable(const CodeModules *modules) {
++module_sequence) {
const CodeModule *module = modules->GetModuleAtSequence(module_sequence);
u_int64_t base_address = module->base_address();
- printf("Module%c%s%c%s%c0x%08llx%c0x%08llx%c%d\n",
+ printf("Module%c%s%c%s%c%s%c%s%c0x%08llx%c0x%08llx%c%d\n",
kOutputSeparator,
StripSeparator(PathnameStripper::File(module->code_file())).c_str(),
kOutputSeparator, StripSeparator(module->version()).c_str(),
+ kOutputSeparator,
+ StripSeparator(PathnameStripper::File(module->debug_file())).c_str(),
+ kOutputSeparator,
+ StripSeparator(module->debug_identifier()).c_str(),
kOutputSeparator, base_address,
kOutputSeparator, base_address + module->size() - 1,
kOutputSeparator, base_address == main_address ? 1 : 0);
diff --git a/src/processor/testdata/minidump2.stackwalk.machine_readable.out b/src/processor/testdata/minidump2.stackwalk.machine_readable.out
index 53eab90a..a292c8fd 100644
--- a/src/processor/testdata/minidump2.stackwalk.machine_readable.out
+++ b/src/processor/testdata/minidump2.stackwalk.machine_readable.out
@@ -1,19 +1,19 @@
OS|Windows NT|5.1.2600 Service Pack 2
CPU|x86|GenuineIntel family 6 model 13 stepping 8
Crash|EXCEPTION_ACCESS_VIOLATION|0x45|0
-Module|test_app.exe||0x00400000|0x0042cfff|1
-Module|dbghelp.dll|5.1.2600.2180|0x59a60000|0x59b00fff|0
-Module|imm32.dll|5.1.2600.2180|0x76390000|0x763acfff|0
-Module|psapi.dll|5.1.2600.2180|0x76bf0000|0x76bfafff|0
-Module|ole32.dll|5.1.2600.2726|0x774e0000|0x7761cfff|0
-Module|version.dll|5.1.2600.2180|0x77c00000|0x77c07fff|0
-Module|msvcrt.dll|7.0.2600.2180|0x77c10000|0x77c67fff|0
-Module|user32.dll|5.1.2600.2622|0x77d40000|0x77dcffff|0
-Module|advapi32.dll|5.1.2600.2180|0x77dd0000|0x77e6afff|0
-Module|rpcrt4.dll|5.1.2600.2180|0x77e70000|0x77f00fff|0
-Module|gdi32.dll|5.1.2600.2818|0x77f10000|0x77f56fff|0
-Module|kernel32.dll|5.1.2600.2945|0x7c800000|0x7c8f3fff|0
-Module|ntdll.dll|5.1.2600.2180|0x7c900000|0x7c9affff|0
+Module|test_app.exe||test_app.pdb|5A9832E5287241C1838ED98914E9B7FF1|0x00400000|0x0042cfff|1
+Module|dbghelp.dll|5.1.2600.2180|dbghelp.pdb|39559573E21B46F28E286923BE9E6A761|0x59a60000|0x59b00fff|0
+Module|imm32.dll|5.1.2600.2180|imm32.pdb|2C17A49C251B4C8EB9E2AD13D7D9EA162|0x76390000|0x763acfff|0
+Module|psapi.dll|5.1.2600.2180|psapi.pdb|A5C3A1F9689F43D8AD228A09293889702|0x76bf0000|0x76bfafff|0
+Module|ole32.dll|5.1.2600.2726|ole32.pdb|683B65B246F4418796D2EE6D4C55EB112|0x774e0000|0x7761cfff|0
+Module|version.dll|5.1.2600.2180|version.pdb|180A90C40384463E82DDC45B2C8AB76E2|0x77c00000|0x77c07fff|0
+Module|msvcrt.dll|7.0.2600.2180|msvcrt.pdb|A678F3C30DED426B839032B996987E381|0x77c10000|0x77c67fff|0
+Module|user32.dll|5.1.2600.2622|user32.pdb|EE2B714D83A34C9D88027621272F83262|0x77d40000|0x77dcffff|0
+Module|advapi32.dll|5.1.2600.2180|advapi32.pdb|455D6C5F184D45BBB5C5F30F829751142|0x77dd0000|0x77e6afff|0
+Module|rpcrt4.dll|5.1.2600.2180|rpcrt4.pdb|BEA45A721DA141DAA3BA86B3A20311532|0x77e70000|0x77f00fff|0
+Module|gdi32.dll|5.1.2600.2818|gdi32.pdb|C0EA66BE00A64BD7AEF79E443A91869C2|0x77f10000|0x77f56fff|0
+Module|kernel32.dll|5.1.2600.2945|kernel32.pdb|BCE8785C57B44245A669896B6A19B9542|0x7c800000|0x7c8f3fff|0
+Module|ntdll.dll|5.1.2600.2180|ntdll.pdb|36515FB5D04345E491F672FA2E2878C02|0x7c900000|0x7c9affff|0
0|0|test_app.exe|`anonymous namespace'::CrashFunction|c:\test_app.cc|58|0x3
0|1|test_app.exe|main|c:\test_app.cc|65|0x4