nightmare666 / google-breakpad

Automatically exported from code.google.com/p/google-breakpad
0 stars 0 forks source link

Absence of .ARM.exidx and .ARM.extab usage in dump_syms for making CFI #503

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Compile Breakpad project and your binary for ARM architecture without debug 
info (NO '-g' option) and with unwind info ('-funwind-tables' option).
2. "readelf -u name_of_binary" will show you the content of .ARM.ex* sections.
3. "dump_syms name_of_binary > name_of_binary.sym". 

What is the expected output? What do you see instead?
You will find that there are no CFI sections in name_of_binary.sym. But it is 
possible to use the info from .ARM.ex* sections for CFI generation. 

What version of the product are you using? On what operating system?
"uname -a"= Linux System-Product-Name 3.0.0-25-generic #41-Ubuntu SMP Mon Aug 
13 17:58:59 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

Please provide any additional information below.
Ted Mielczarek published his patch for Breakpad. Unfortunately it produced the 
Segmentation Fault on some binaries. I found the bug with mapping of address 
and fixed it. It would be interesting for me to rewrite a patch for trunk 
version (for example). Can somebody advises me the correct architecture of 
improvement?

Original issue reported on code.google.com by Vasily.G...@gmail.com on 1 Nov 2012 at 6:24

GoogleCodeExporter commented 9 years ago
Here you can find Ted's patch: https://breakpad.appspot.com/480002/

Original comment by Vasily.G...@gmail.com on 1 Nov 2012 at 6:29

GoogleCodeExporter commented 9 years ago
I attached the patch relatively to the revision r1077.
I refactored the code from https://breakpad.appspot.com/480002/ (Ted's code) 
and change the function "prel31_to_addr". Now NO Segmentation fault and 
functions addresses in CFI coincide with and without debug information.

Unfortunately, I didn't separate completely parsing and composing CFI. It is 
possible to form some temporary structure, but, in my opinion, it is not a good 
way.

Original comment by Vasily.G...@gmail.com on 13 Nov 2012 at 5:24

Attachments:

GoogleCodeExporter commented 9 years ago
Thanks, I took this updated patch, fixed a few things, and put it up on the 
original Rietveld issue:
https://breakpad.appspot.com/480002/

Original comment by ted.mielczarek on 19 Apr 2013 at 12:13