10baadae40
Previously, dump_syms did not handle DW_FORM_ref_addr if it appeared in DWARF 4 debugging info. Also fix a DW_FORM_ref_addr case so that it doesn't fall through to the next switch case when assertions are disabled and the DWARF version isn't recognised. The following steps will reproduce the problem when using LLVM 3.4: cat <<END >example1.c int main() { return 0; } END cat <<END >example2.c void foo(int x) {} END clang -emit-llvm -g -c example1.c -o example1.bc clang -emit-llvm -g -c example2.c -o example2.bc llvm-link-3.4 example1.bc example2.bc -o combined.bc clang combined.bc -o executable ./google-breakpad/build/src/tools/linux/dump_syms/dump_syms executable When using LLVM bitcode linking in this way, LLVM's backend generates partially-merged DWARF debugging info in which some of the references to the "int" type go via "DW_FORM_ref_addr". Since PNaCl uses LLVM bitcode linking, this dump_syms failure occurs with nexes produced by the PNaCl toolchain. BUG= https://code.google.com/p/chromium/issues/detail?id=416368 TEST= see above R=mark@chromium.org, mcgrathr@chromium.org Review URL: https://breakpad.appspot.com/5744002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1408 4c0a9323-5329-0410-9bdc-e9ce6186880e |
||
---|---|---|
android | ||
autotools | ||
m4 | ||
src | ||
.gitignore | ||
aclocal.m4 | ||
AUTHORS | ||
breakpad-client.pc.in | ||
breakpad.pc.in | ||
ChangeLog | ||
codereview.settings | ||
configure | ||
configure.ac | ||
DEPS | ||
INSTALL | ||
LICENSE | ||
Makefile.am | ||
Makefile.in | ||
NEWS | ||
README | ||
README.ANDROID |
Breakpad is a set of client and server components which implement a crash-reporting system. ----- Getting started in 32-bit mode (from trunk) Configure: CXXFLAGS=-m32 CFLAGS=-m32 CPPFLAGS=-m32 ./configure Build: make Test: make check Install: make install If you need to reconfigure your build be sure to run "make distclean" first. ----- To request change review: 0. Get access to a read-write copy of source. Owners at http://code.google.com/p/google-breakpad/ are able to grant this access. 1. Check out a read-write copy of source using instructions at http://code.google.com/p/google-breakpad/source/checkout 2. Make changes. Build and test your changes. For core code like processor use methods above. For linux/mac/windows, there are test targets in each project file. 3. Download http://codereview.appspot.com/static/upload.py 4. Run upload.py from the 'src' directory: upload.py --server=breakpad.appspot.com You will be prompted for credential and a description. 5. At http://breakpad.appspot.com you'll find your issue listed; click on it, and select Publish+Mail, and enter in the code reviewer and CC google-breakpad-dev@googlegroups.com 6. When applying code review feedback, specify the '-i' option when running upload.py again and pass the issue number so it updates the existing issue, rather than creating a new one. Be sure to rerun upload.py from the same directory as you did for previous uploads to allow for proper diff calculations.