This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: GDB 5.2/5.3 breakpoint bug
On Wed, Jan 08, 2003 at 12:37:29PM -0800, Sunil Alankar wrote:
> Meanwhile, a colleague of mine had a different workaround:
>
> There is one extra record_line call in gdb 5.21 and gdb 5.3 which inserts
> extra line number
> and pc into the linetable of symtab entry.
>
> gdb/dbxread.c in gdb.5.1.01
> 1919 if (*name == '\000')
> 1920 {
> 1921 /* This N_FUN marks the end of a function. This closes
> off the
> 1922 current block. */
> 1923 within_function = 0;
> 1924 new = pop_context ();
>
> gdb/dbxread.c in gdb 5.2.1
> 2749 if (*name == '\000')
> 2750 {
> 2751 /* This N_FUN marks the end of a function. This closes
> off the
> 2752 current block. */
> 2753 record_line (current_subfile, 0, function_start_offset +
> valu);
> 2754 within_function = 0;
> 2755 new = pop_context ();
> 2756
>
> gdb/dbxread.c in gdb 5.3
>
> 2773 if (*name == '\000')
> 2774 {
> 2775 /* This N_FUN marks the end of a function. This closes
> off the
> 2776 current block. */
> 2777 record_line (current_subfile, 0, function_start_offset +
> valu);
> 2778 within_function = 0;
> 2779 new = pop_context ();
> 2780
>
>
> Comment out the line 2753 in gdb 5.21 and 2777 in gdb 5.3 and build them on
> solaris seems to work OK with two test cases.
>
> Now the question is to figure out why this line is added in gdb 5.21 and
> gdb 5.3?
The line is supposed to be there; it's so we know what is and isn't
inside a function. You need to explain better why it's causing a
problem in find_pc_sect_line.
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer