bfd Mach-O DWARF debugging support
Sun Apr 8 10:24:00 GMT 2012
On 8 Apr 2012, at 11:07, Albert Zeyer wrote:
> It seems that the binary references to `.o` files.
Yes and I believe that we have partial support already in gdb, but
maybe not elsewhere in binutils (Tristan would know better).
> That is also where
> `dsymutil` is collecting its debug info from.
.. the reason for dsymutil's existence is that when you do "gcc foo.c -
g -o foo" the intermediate object files are temporary - deleted at the
end of the compile - so that they cannot be found later for debug etc.
dsymutil intercepts them before they are removed and copies the debug
if you build every source with "-c" and then link separately this
problem might not arise (providing you keep the .o files where they
if you are doing a single file with a c/l like about - one thing you
can try is to add "-save-temps" so that the intermediate object is
(or dsymutil, of course)
however, AFAIR, Apple's gcc automatically invokes dsymutil when "-g*"
is on the c/l for Darwin >= 9 (osx 10.5) or if -g-dwarf* is explicitly
FSF GCC also does the same (and for a wider range of languages).
> Apples GDB and other Apple tools read this referenced debug info.
> Maybe libbfd should too?
I am sure that there are (possibly large) gaps in our support.
It would be very nice if we had complete support for this -- patches
(darwin has only a small group of volunteers, the more the merrier!)
> On Fri, Apr 6, 2012 at 5:13 AM, Albert Zeyer <email@example.com>
>> I was wondering about the current state of the Mach-O DWARF debugging
>> support. I saw some patches recently which implemented
>> `bfd_mach_o_find_nearest_line` (that is mostly what I am interested
>> I have a binary which was build via `gcc -gdwarf-2` (Apples GCC).
>> I tried binutils-2.22.52 but it doesn't really work for me. I tried
>> debug it a bit. Some things I can say so far:
>> * `objdump -g` doesn't output anything regarding debugging info.
>> * In bfd/dwarf2.c, in find_line(), _bfd_dwarf2_slurp_debug_info
>> returns false.
>> * In _bfd_dwarf2_slurp_debug_info(), find_debug_info returns false.
>> * `objdump -h` doesn't list any debug section.
>> When I use `dsymutil` to generate a dSYM from my binary,
>> `bfd_mach_o_find_nearest_line` works.
>> Can somebody give some hints wether it should work or about the
>> current state?
More information about the Binutils