Write field indicating multiple symbols at an address in dump_syms

Updates dump_syms to write the optional 'm' first field in FUNCTION and
PUBLIC records to indicate that the address corresponds to more than one
symbol.

Bug: google-breakpad:751
Change-Id: I850b0122324ed5f9ec747aa92ba354a3126a7ef9
Reviewed-on: https://chromium-review.googlesource.com/820711
Reviewed-by: Mark Mentovai <mark@chromium.org>
This commit is contained in:
Mike Wittman
2017-12-11 13:50:41 -08:00
committed by Mark Mentovai
parent 23ad65d54a
commit 897a12cd26
8 changed files with 12 additions and 31 deletions

View File

@@ -42,22 +42,12 @@ using google_breakpad::PDBSourceLineWriter;
int wmain(int argc, wchar_t **argv) {
if (argc < 2) {
fprintf(stderr,
"Usage: %ws [--enable_multiple_field] <file.[pdb|exe|dll]>\n",
argv[0]);
fprintf(stderr, "Usage: %ws <file.[pdb|exe|dll]>\n", argv[0]);
return 1;
}
// This is a temporary option to enable writing the optional 'm' field on FUNC
// and PUBLIC, denoting multiple symbols for the address. This option will be
// removed, with the behavior enabled by default, after all symbol file
// readers have had a chance to update.
bool enable_multiple_field =
(argc >= 3 && wcscmp(L"--enable_multiple_field", argv[1]) == 0);
PDBSourceLineWriter writer(enable_multiple_field);
if (!writer.Open(wstring(argv[enable_multiple_field ? 2 : 1]),
PDBSourceLineWriter::ANY_FILE)) {
PDBSourceLineWriter writer;
if (!writer.Open(wstring(argv[1]), PDBSourceLineWriter::ANY_FILE)) {
fprintf(stderr, "Open failed\n");
return 1;
}

View File

@@ -1958,7 +1958,7 @@ FUNC 4515 84 0 _local_unwind2
FUNC 4599 23 0 _abnormal_termination
FUNC 45bc 9 0 _NLG_Notify1
FUNC 45c5 1f 0 _NLG_Notify
PUBLIC 45dc 0 _NLG_Dispatch
PUBLIC m 45dc 0 _NLG_Dispatch
FUNC 45e4 3 0 _NLG_Call
PUBLIC 45e6 0 _NLG_Return2
FUNC 45e7 33 0 abort

View File

@@ -2809,7 +2809,7 @@ FUNC 67c0 84 0 _local_unwind2
FUNC 6844 23 0 _abnormal_termination
FUNC 6867 9 0 _NLG_Notify1
FUNC 6870 1f 0 _NLG_Notify
PUBLIC 6887 0 _NLG_Dispatch
PUBLIC m 6887 0 _NLG_Dispatch
FUNC 688f 3 0 _NLG_Call
PUBLIC 6891 0 _NLG_Return2
FUNC 4695 33 0 abort

View File

@@ -1958,7 +1958,7 @@ FUNC 293c 84 0 _local_unwind2
FUNC 29c0 23 0 _abnormal_termination
FUNC 29e3 9 0 _NLG_Notify1
FUNC 29ec 1f 0 _NLG_Notify
PUBLIC 2a03 0 _NLG_Dispatch
PUBLIC m 2a03 0 _NLG_Dispatch
FUNC 2a0b 3 0 _NLG_Call
PUBLIC 2a0d 0 _NLG_Return2
FUNC 2862 33 0 abort

View File

@@ -2067,7 +2067,7 @@ FUNC 5263 84 0 _local_unwind2
FUNC 52e7 23 0 _abnormal_termination
FUNC 530a 9 0 _NLG_Notify1
FUNC 5313 1f 0 _NLG_Notify
PUBLIC 532a 0 _NLG_Dispatch
PUBLIC m 532a 0 _NLG_Dispatch
FUNC 5332 3 0 _NLG_Call
PUBLIC 5334 0 _NLG_Return2
FUNC 5335 33 0 abort

View File

@@ -1958,7 +1958,7 @@ FUNC 5263 84 0 _local_unwind2
FUNC 52e7 23 0 _abnormal_termination
FUNC 530a 9 0 _NLG_Notify1
FUNC 5313 1f 0 _NLG_Notify
PUBLIC 532a 0 _NLG_Dispatch
PUBLIC m 532a 0 _NLG_Dispatch
FUNC 5332 3 0 _NLG_Call
PUBLIC 5334 0 _NLG_Return2
FUNC 5335 33 0 abort