This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
decode_variable's use of not_found_ptr
- From: Greg Law <greglaw at greglaw dot net>
- To: gdb at sourceware dot org
- Date: Sat, 22 Apr 2006 09:06:16 +0100
- Subject: decode_variable's use of not_found_ptr
Hi all,
I tried to send this to gdb-prs, but to no avail - hopefully mmore luck
here.
Anyway, sometimes when I restart a program. I get error messages telling
me that a breakpoint in a shared library can't be found:
Error in re-setting breakpoint 2:
Function "foo" not defined.
Error in re-setting breakpoint 2:
Function "foo" not defined.
Error in re-setting breakpoint 2:
Function "foo" not defined.
Error in re-setting breakpoint 2:
Function "foo" not defined.
Error in re-setting breakpoint 2:
Function "foo" not defined.
Error in re-setting breakpoint 2:
Function "foo" not defined.
Error in re-setting breakpoint 2:
Function "foo" not defined.
I've had a quick look at the source, and the message seems to be coming
from decode_variable()
The comment for this function says:
/* Decode a linespec that's a variable. If FILE_SYMTAB is non-NULL,
look in that symtab's static variables first. If NOT_FOUND_PTR is
not NULL and the function cannot be found, store boolean true in the
location pointed to and do not issue an error message. */
but at the bottom of the function it says:
if (not_found_ptr)
*not_found_ptr = 1;
throw_error (NOT_FOUND_ERROR, _("Function \"%s\" not defined."), copy);
Now, I must confess gdb's internal exception mechanism is deeply
mysterious to me, but that code looks to me like it doesn't do what the
comment claims. i.e. if not_found_ptr is non-NULL, it still issues the
error message.
What's wrong - my reading of the code, or the code?
Cheers,
Greg