diff options
author | jimblandy <jimblandy@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2010-05-05 17:09:20 +0000 |
---|---|---|
committer | jimblandy <jimblandy@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2010-05-05 17:09:20 +0000 |
commit | b0ec96cee2ab186c9e7e480d03751588f0640bf1 (patch) | |
tree | 40fc8df4fbbf5542c27cad2919c025fe3881457f /src/tools | |
parent | Breakpad symbol dumper: Define the ByteBuffer and ByteCursor classes. (diff) | |
download | breakpad-b0ec96cee2ab186c9e7e480d03751588f0640bf1.tar.xz |
Breakpad Linux dumper: Make StabsReader independent of endianness and word size.
StabsReader simply applies a reinterpret_cast to treat the stab entry data
as an array of 'struct nlist' structures, making the parser specific on the
host endianness, word size, and alignment rules. On Mac OS X, a single fat
binary file may contain object files of different ABIs, of which the user
chooses one at run time.
This patch changes the parser to read the data using the google_breakpad::
ByteCursor class, which can handle different endiannesses and word sizes.
The StabsReader constructor now takes arguments indicating the endianness
of the data and the size of each entry's value field. The patch changes
src/common/linux/dump_symbols.cc to pass the new argument.
This patch changes the StabsReader unit tests to use the google_breakpad::
TestAssembler classes to generate test data, rather than reading it from a
file. This makes it easy to generate test data in various endiannesses and
word sizes. It also adds tests for the new parser behaviors.
a=jimblandy, r=thestig
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@583 4c0a9323-5329-0410-9bdc-e9ce6186880e
Diffstat (limited to 'src/tools')
-rw-r--r-- | src/tools/linux/dump_syms/Makefile | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/tools/linux/dump_syms/Makefile b/src/tools/linux/dump_syms/Makefile index 4d50c3aa..800e3add 100644 --- a/src/tools/linux/dump_syms/Makefile +++ b/src/tools/linux/dump_syms/Makefile @@ -154,6 +154,7 @@ stabs_reader_unittest: \ gtest-all.o \ gtest_main.o \ stabs_reader.o \ + test_assembler.o \ $(empty) CPP_EXECUTABLES += stabs_reader_unittest stabs_reader_unittest.o: stabs_reader_unittest.cc @@ -360,7 +361,7 @@ $(CPP_EXECUTABLES): %: %.o # Allow #include directives to refer to files below 'src'; generate # dependency files automatically; and I doubt _REENTRANT is needed at all. -BREAKPAD_CPPFLAGS = -I$(SRC) -MMD -D_REENTRANT +BREAKPAD_CPPFLAGS = -I$(SRC) -MMD -D_REENTRANT -DHAVE_A_OUT_H # Bring in whatever dependency files we have generated by compiling with -MMD. -include *.d @@ -383,7 +384,7 @@ clean:: ### appropriate for Google C++ Testing Framework test programs. But ### you can provide your own commands. check-%: % - srcdir=$(SRC) $(TEST_WRAPPER) ./$< $(TEST_ARGS) + $(TEST_WRAPPER) ./$< $(TEST_ARGS) ### Generic coverage reporting rules. |