aboutsummaryrefslogtreecommitdiff
path: root/gdb/ada-lang.c
diff options
context:
space:
mode:
authorJoel Brobecker <brobecker@gnat.com>2010-04-20 22:38:54 +0000
committerJoel Brobecker <brobecker@gnat.com>2010-04-20 22:38:54 +0000
commit2971b56ba623542a0232473f110922758588fe2c (patch)
treeeb2b11cd92c97f976a6f09eb7fe31c7a2eb17244 /gdb/ada-lang.c
parentbe9425454f2d15a1c2512faa81de8777731aa4af (diff)
downloadgdb-2971b56ba623542a0232473f110922758588fe2c.zip
gdb-2971b56ba623542a0232473f110922758588fe2c.tar.gz
gdb-2971b56ba623542a0232473f110922758588fe2c.tar.bz2
[AIX] Memory error while checking if pointer is descriptor.
A long time ago (Oct 2009), I noticed a problem on AIX, where something failed with an error while the debugger was checking whether an address was a descriptor or not. Unfortunately, like an idiot, I forgot to write notes about the scenario where the problem occured - I am usually pretty meticulous about that because my memory of these things is really bad. I hope you'll forgive me for not providing a solid testcase - if it's any consolation, I've searched for a long time before giving up :-(. Based on the testsuite reports that I have, I think that this happened while inserting a breakpoint, as follow: (gdb) break x Cannot access memory at address 0x200093b4 What happened is that rs6000_convert_from_func_ptr_addr tried to read the memory at the given address, and fail because of an exception. It seems pretty clear that, if the address was in fact a descriptor, GDB would have been able to read the target memory region. So this patch protects the memory-read against exceptions, and treats such exceptions as an indication that our address is not a descriptor. gdb/ChangeLog: * rs6000-aix-tdep.c: #include exceptions.h. (rs6000_convert_from_func_ptr_addr): If an exception is thrown while reading the memory at ADDR, then ADDR cannot be a function descriptor.
Diffstat (limited to 'gdb/ada-lang.c')
0 files changed, 0 insertions, 0 deletions