This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Fwd: [patch]: Fix crash in objc and breakpoints
- From: Kai Tietz <ktietz70 at googlemail dot com>
- To: gdb-patches at sourceware dot org
- Date: Thu, 18 Feb 2010 20:32:11 +0100
- Subject: Fwd: [patch]: Fix crash in objc and breakpoints
- References: <OF157BF8D8.3C55726E-ONC12576CE.003684E3-C12576CE.00371539@onevision.de>
ups, wrong mailing list.
---------- Forwarded message ----------
From: Kai Tietz <Kai.Tietz@onevision.com>
Date: 2010/2/18
Subject: [patch]: Fix crash in objc and breakpoints
To: gdb@sourceware.org
Cc: Joel Brobecker <brobecker@adacore.com>
Hello,
Sorry, that I came that late to this subject, but I was pretty busy last
weeks. As discussed in thread " [gdb-7.1] 10 days to branching..." there
are troubles about setting breakpoints in gdb. ?As I found is the issue
related to recent use of init_sal function and missing initialization of
pspace member.
The following patch solves this for me. I regression tested it for
x86_64-pc-mingw32, i686-pc-linux, and i686-pc-cygwin without any
regressions.
2010-02-18 Kai Tietz ?<kai.tietz@onevision.com>
? ? ? ?* source.c (line_info): Initialize pspace by default
? ? ? ?current_program_space.
? ? ? ?* frame.c (find_frame_sal): Likewise.
? ? ? ?* linespec.c (decode_line_2): Likewise.
? ? ? ?(decode_objc): Likewise.
Ok for apply?
Regards,
Kai
| ?(\_/) ?This is Bunny. Copy and paste Bunny
| (='.'=) into your signature to help him gain
| (")_(") world domination.
--------
Index: src/gdb/frame.c
===================================================================
--- src.orig/gdb/frame.c ? ? ? ?2010-01-29 16:28:43.000000000 +0100
+++ src/gdb/frame.c ? ? 2010-02-18 10:49:42.745803800 +0100
@@ -1857,6 +1857,8 @@
? ? ? ? ? the call site is. ?Do not pretend to. ?This is jarring, but
? ? ? ? ? we can't do much better. ?*/
? ? ? ?sal->pc = get_frame_pc (frame);
+ ? ? ?/* Initialize pspace by default. ?*/
+ ? ? ?sal->pspace = current_program_space;
? ? ? return;
? ? }
Index: src/gdb/linespec.c
===================================================================
--- src.orig/gdb/linespec.c ? ? 2010-02-18 10:41:31.000000000 +0100
+++ src/gdb/linespec.c ?2010-02-18 10:52:50.980178800 +0100
@@ -513,7 +513,9 @@
? while (i < nelts)
? ? {
? ? ? init_sal (&return_values.sals[i]); ? ? ? /* Initialize to zeroes.
*/
+ ? ? ?return_values.sals[i].pspace = current_program_space;
? ? ? init_sal (&values.sals[i]);
+ ? ? ?values.sals[i].pspace = current_program_space;
? ? ? if (sym_arr[i] && SYMBOL_CLASS (sym_arr[i]) == LOC_BLOCK)
? ? ? ?values.sals[i] = find_function_start_sal (sym_arr[i],
funfirstline);
? ? ? i++;
@@ -1206,6 +1208,7 @@
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ¤t_target);
? ? ? ? ?init_sal (&values.sals[0]);
+ ? ? ? ? values.sals[0].pspace = current_program_space;
? ? ? ? ?values.sals[0].pc = pc;
? ? ? ?}
? ? ? return values;
Index: src/gdb/source.c
===================================================================
--- src.orig/gdb/source.c ? ? ? 2010-01-12 16:54:43.000000000 +0100
+++ src/gdb/source.c ? ?2010-02-18 10:46:36.183303800 +0100
@@ -1467,6 +1467,7 @@
? int i;
? init_sal (&sal); ? ? ? ? ? ? /* initialize to zeroes */
+ ?sal.pspace = current_program_space; /* initialize as default. ?*/
? if (arg == 0)
? ? {
--
| (\_/) This is Bunny. Copy and paste
| (='.'=) Bunny into your signature to help
| (")_(") him gain world domination