Re: question about why gdb needs executable's binary

John Baldwin <[email protected]> Wed, 13 Mar 2019 09:21:48 -0700
Newsgroups gmane.comp.gdb.devel,gmane.comp.gdb.general
Message-ID <[email protected]>
On 3/13/19 8:41 AM, Jirka Koutn=C3=BD wrote:
> Thanks Andreas! Aha that's interesting.. hmm so, is there some read-only
> segment, that would contain information necessary for the output of 'wher=
e'?

The .text section containing the instructions being executed is often needed
for unwinding if there is no debug info.  On some architectures with a fixed
frame layout like 32-bit x86 you can get by without decoding instructions, =
but
on other architectures like 64-bit x86, an unwinder has to try to decode
instructions to determine frame layouts in the absence of debug info.=20

> Den ons. 13. mar. 2019 kl. 14:34 skrev Andreas Schwab <[email protected]>:
>=20
>> On M=C3=A4r 13 2019, Jirka Koutn=C3=BD <[email protected]> wrote:
>>
>>> If we assume debugging a core file generated by an excutable with
>> stripped
>>> symbols (that gdb is able to find and load correctly in my case),
>>> I was wondering why does gdb still need the executable's binary as
>>> well?
>>
>> A core file only contains data from modified mappings.  Any data from
>> read-only mappings needs to be read from the original files.
>>
>> Andreas.
>>
>> --
>> Andreas Schwab, SUSE Labs, [email protected]
>> GPG Key fingerprint =3D 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9=
D7
>> "And now for something completely different."
>>


--=20
John Baldwin