This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH 0/4] Non-contiguous address range bug fixes / improvements
- From: Tom Tromey <tom at tromey dot com>
- To: Kevin Buettner <kevinb at redhat dot com>
- Cc: gdb-patches at sourceware dot org
- Date: Wed, 26 Jun 2019 11:24:46 -0600
- Subject: Re: [PATCH 0/4] Non-contiguous address range bug fixes / improvements
- References: <20190608195434.26512-1-kevinb@redhat.com>
>>>>> "Kevin" == Kevin Buettner <kevinb@redhat.com> writes:
Kevin> This four part series fixes some bugs associated with GDB's non-contiguous
Kevin> address range support.
This is not really related to your patches, but since you have been
working in this area, I thought I'd ask.
I ran into a case where gdb will mis-report a breakpoint location in a
certain situation (that is, "info b" will show something odd for the
source location). After debugging for a while, my theory is that the
problem occurs because the executable has non-contiguous address ranges.
In particular, find_pc_sect_line is written to first find the symtab
with the smallest overall range that encloses the PC, and then to find a
matching symbol in the symtab. But, with non-contiguous ranges, this
can yield a sub-optimal result -- because the overall range of a symtab
not longer really says anything about whether it holds the best symbol.
Have you seen anything like this? (I guess not since I'd imagine you'd
have written a patch ;-)
I was thinking perhaps the best fix would be to search the blockvectors
for a definitively enclosing block. I wonder what you think.
thanks,
Tom