PR tdep/17379: Fix internal-error when stack pointer is invalid.
authorEdjunior Barbosa Machado <emachado@linux.vnet.ibm.com>
Fri, 12 Sep 2014 12:20:25 +0000 (09:20 -0300)
committerEdjunior Barbosa Machado <emachado@linux.vnet.ibm.com>
Fri, 12 Sep 2014 12:20:25 +0000 (09:20 -0300)
commit9d9bf2df89db515958b429a1aeb1db38884ba488
treef78704b2e32a42dc858664f2d5758bd2913bf5ec
parent1cf2f1b045e9e647f6dfd28829ff4592c588dcb7
PR tdep/17379: Fix internal-error when stack pointer is invalid.

The problem is that rs6000_frame_cache attempts to read the stack backchain via
read_memory_unsigned_integer, which throws an exception if the stack pointer is
invalid.  With this patch, it calls safe_read_memory_integer instead, which
doesn't throw an exception and allows for safe handling of that situation.

gdb/ChangeLog
2014-09-12  Edjunior Barbosa Machado  <emachado@linux.vnet.ibm.com>
    Ulrich Weigand  <uweigand@de.ibm.com>

PR tdep/17379
* rs6000-tdep.c (rs6000_frame_cache): Use safe_read_memory_integer
instead of read_memory_unsigned_integer.

gdb/testcase/ChangeLog
2014-09-12  Edjunior Barbosa Machado  <emachado@linux.vnet.ibm.com>

PR tdep/17379
* gdb.arch/powerpc-stackless.S: New file.
* gdb.arch/powerpc-stackless.exp: New file.
gdb/ChangeLog
gdb/rs6000-tdep.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.arch/powerpc-stackless.S [new file with mode: 0644]
gdb/testsuite/gdb.arch/powerpc-stackless.exp [new file with mode: 0644]