This is the mail archive of the
mailing list for the GDB project.
Re: [PATCH] gdb.ada/catch_ex.exp, gdb.ada/mi_catch_ex.exp and unsupported catchpoints
On Friday 09 December 2011 17:43:40, Tom Tromey wrote:
> >>>>> "Pedro" == Pedro Alves <email@example.com> writes:
> Joel> The problem is that we need to get to the argument of function we are
> Joel> breaking on in order to determine which exception has been raised.
> Joel> That's where we really need the debug info. I think I even added
> Joel> a comment about that in the code...
> Pedro> GDB knows the target's function call ABI (for infcalls), and supposedly
> Pedro> this function's prototype is cast in stone as part of the ABI too.
> Pedro> GDB could just know where to get the arguments from?
> Yeah, it could be done. Right now though the knowledge in GDB is in a
> form that is specific to making infcalls, not decoding them. So, adding
> this functionality would be a significant amount of work, and also
> non-trivial to test. I count 51 calls to set_gdbarch_push_dummy_call in
> the tree...
But _only_ 45 unique callbacks.
$ grep set_gdbarch_push_dummy_call *-tdep.c | sed 's/.*arch, //g; s/);//g' | sort | uniq | wc -l
Kidding aside, obviously we wouldn't need to convert
everything at once. We could even get away with only handling
the simpler prototypes we care about at first.