aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoel Brobecker <brobecker@adacore.com>2014-06-04 14:03:22 -0400
committerJoel Brobecker <brobecker@adacore.com>2014-06-04 17:57:21 -0400
commitef7cab6ba16d76c3470fb27a0c8966513f7cb34a (patch)
tree1bf3f3b22260284949cd72fe19af41a0dd271994
parent012370f6818657a816df1463ee71ca4e4ee40b33 (diff)
downloadgdb-ef7cab6ba16d76c3470fb27a0c8966513f7cb34a.zip
gdb-ef7cab6ba16d76c3470fb27a0c8966513f7cb34a.tar.gz
gdb-ef7cab6ba16d76c3470fb27a0c8966513f7cb34a.tar.bz2
gdbserver crash if the_target->supports_z_point_type is NULL
When debugging on LynxOS targets (and probably on SPU targets as well), inserting a breakpoint and resuming the program's execution causes GDBserver to crash. The crash occurs while handling the Z0 packet sent by GDB to insert our breakpoint, because z_type_supported calls the_target->supports_z_point_type without checking that it is not NULL This patch fixes the issue by making z_type_supported return false if the_target->supports_z_point_type is NULL. gdb/gdbserver/ChangeLog: PR server/17023 * mem-break.c (z_type_supported): Return zero if THE_TARGET->SUPPORTS_Z_POINT_TYPE is NULL. Tested on ppx-lynx5.
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/gdbserver/mem-break.c1
2 files changed, 7 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 1803f81..7c43607 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2014-06-04 Joel Brobecker <brobecker@adacorer.com>
+
+ PR server/17023
+ * mem-break.c (z_type_supported): Return zero if
+ THE_TARGET->SUPPORTS_Z_POINT_TYPE is NULL.
+
2014-06-04 Tom Tromey <tromey@redhat.com>
* ada-lang.c (ada_template_to_fixed_record_type_1): Use
diff --git a/gdb/gdbserver/mem-break.c b/gdb/gdbserver/mem-break.c
index 71876f7..2ce3ab2 100644
--- a/gdb/gdbserver/mem-break.c
+++ b/gdb/gdbserver/mem-break.c
@@ -897,6 +897,7 @@ static int
z_type_supported (char z_type)
{
return (z_type >= '0' && z_type <= '4'
+ && the_target->supports_z_point_type != NULL
&& the_target->supports_z_point_type (z_type));
}