Re: Breakpoints in shared address space
Max Larsson via Gdb <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <CAGKMySWR1ck6yefZdUird3eVhiT2JiOH6tbuuX7tQ_qTFB1zDA@mail.gmail.com> |
Hi Andrew, thanks for the explanation. That help a lot. And even for the patch. I think I will in cooperate that in our port. KR Max Larsson On Fri, 16 May 2025 at 12:26, Andrew Burgess <[email protected]> wrote: > Max Larsson via Gdb <[email protected]> writes: > > > On Thu, 15 May 2025 at 13:46, Andreas Schwab <[email protected]> wrote: > > > >> On Mai 15 2025, Max Larsson via Gdb wrote: > >> > >> > So if gdb file command is use to read an exe, gdb uses the address for > >> the > >> > exe as defined in the elf file. So if i disas the _start function > >> > it show me all the assembler code starting with an address > 0x010000054. > >> So > >> > long everything is fine. Now I tell gdb to set an break point > >> > on that address and run the exe. > >> > >> How do you set the breakpoint exactly? > >> > >> > > Like this "b *0x010000054" > > GDB doesn't adjust breakpoint placed by address when an inferior is > relocated during startup. > > The same problems you are encountering can (and often is) hit on Linux > system if the executable is compiled as PIE (position independent > executable). > > I did, long ago, propose a patch to GDB that would specifically warn > about this issue: > > > https://inbox.sourceware.org/gdb-patches/[email protected]/ > > But it never got merged. > > If you place the breakpoint based on function name, or file/line, then > GDB will update the breakpoints location. > > Alternatively, you could start the inferior, but halt before the first > instruction using `starti`, then disassemble, at which point the > addresses should be correct, you can then place a breakpoint by address. > > Your next question is likely to be: why don't address breakpoints get > updated? The answer is that GDB doesn't want to make assumptions about > what the user intends. What if they _really_ do want a b/p at that > address? Given there are easy solutions (`starti`) that allow the user > to place on the correct address, right now, address breakpoints just > don't move. > > Thanks, > Andrew > > > > > KR > > > > Max Larsson > > > > BTW: Edit the subject which I forget in my initial email > >