rpms/gdb/devel gdb-6.8-inlining-by-name.patch, NONE, 1.1 gdb-6.8-inlining.patch, NONE, 1.1 gdb.spec, 1.293, 1.294
Jan Kratochvil (jkratoch)
fedora-extras-commits at redhat.com
Thu Jul 3 11:06:15 UTC 2008
- Previous message: rpms/imsettings/devel .cvsignore, 1.4, 1.5 imsettings.spec, 1.6, 1.7 sources, 1.3, 1.4 imsettings.diff, 1.1, NONE
- Next message: rpms/cman/F-9 cman.spec,1.104,1.105
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: jkratoch
Update of /cvs/pkgs/rpms/gdb/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv4361
Modified Files:
gdb.spec
Added Files:
gdb-6.8-inlining-by-name.patch gdb-6.8-inlining.patch
Log Message:
* Thu Jul 3 2008 Jan Kratochvil <jan.kratochvil at redhat.com> - 6.8-13
- Support transparent debugging of inlined functions for an optimized code.
gdb-6.8-inlining-by-name.patch:
--- NEW FILE gdb-6.8-inlining-by-name.patch ---
Implement `b <funcname>' for <funcname> with concete inlined instances by
a multiple-PC breakpoint.
diff -up -u -X /home/jkratoch/.diffi.list -rup sources-inline-works3-orig/gdb/ada-lang.c sources-inline-works3/gdb/ada-lang.c
--- sources-inline-works3-orig/gdb/ada-lang.c 2008-06-24 20:58:11.000000000 +0200
+++ sources-inline-works3/gdb/ada-lang.c 2008-06-26 15:29:33.000000000 +0200
@@ -4625,7 +4625,7 @@ remove_irrelevant_renamings (struct ada_
if (current_block == NULL)
return nsyms;
- current_function = block_linkage_function (current_block);
+ current_function = block_function (current_block);
if (current_function == NULL)
return nsyms;
@@ -6721,7 +6721,7 @@ ada_find_renaming_symbol (const char *na
static struct symbol *
find_old_style_renaming_symbol (const char *name, struct block *block)
{
- const struct symbol *function_sym = block_linkage_function (block);
+ const struct symbol *function_sym = block_function (block);
char *rename;
if (function_sym != NULL)
diff -up -u -X /home/jkratoch/.diffi.list -rup sources-inline-works3-orig/gdb/block.c sources-inline-works3/gdb/block.c
--- sources-inline-works3-orig/gdb/block.c 2008-06-24 20:58:11.000000000 +0200
+++ sources-inline-works3/gdb/block.c 2008-06-26 15:29:09.000000000 +0200
@@ -73,6 +73,19 @@ block_linkage_function (const struct blo
return BLOCK_FUNCTION (bl);
}
+/* Return the symbol for the function which contains a specified
+ lexical block, described by a struct block BL. Inlined functions
+ can be returned. */
+
+struct symbol *
+block_function (const struct block *bl)
+{
+ while (BLOCK_FUNCTION (bl) == NULL && BLOCK_SUPERBLOCK (bl) != NULL)
+ bl = BLOCK_SUPERBLOCK (bl);
+
+ return BLOCK_FUNCTION (bl);
+}
+
/* Return one if BLOCK represents an inlined function. */
int
diff -up -u -X /home/jkratoch/.diffi.list -rup sources-inline-works3-orig/gdb/block.h sources-inline-works3/gdb/block.h
--- sources-inline-works3-orig/gdb/block.h 2008-06-24 20:58:11.000000000 +0200
+++ sources-inline-works3/gdb/block.h 2008-06-26 15:29:20.000000000 +0200
@@ -137,6 +137,7 @@ struct blockvector
enum { GLOBAL_BLOCK = 0, STATIC_BLOCK = 1, FIRST_LOCAL_BLOCK = 2 };
extern struct symbol *block_linkage_function (const struct block *);
+extern struct symbol *block_function (const struct block *bl);
extern int block_inlined_p (const struct block *block);
diff -up -u -X /home/jkratoch/.diffi.list -rup sources-inline-works3-orig/gdb/blockframe.c sources-inline-works3/gdb/blockframe.c
--- sources-inline-works3-orig/gdb/blockframe.c 2008-06-24 20:58:25.000000000 +0200
+++ sources-inline-works3/gdb/blockframe.c 2008-06-26 15:34:44.000000000 +0200
@@ -157,7 +157,7 @@ find_pc_sect_function (CORE_ADDR pc, str
struct block *b = block_for_pc_sect (pc, section);
if (b == 0)
return 0;
- return block_linkage_function (b);
+ return block_function (b);
}
/* Return the function containing pc value PC.
diff -up -u -X /home/jkratoch/.diffi.list -rup sources-inline-works3-orig/gdb/breakpoint.c sources-inline-works3/gdb/breakpoint.c
--- sources-inline-works3-orig/gdb/breakpoint.c 2008-06-24 20:58:25.000000000 +0200
+++ sources-inline-works3/gdb/breakpoint.c 2008-06-26 15:28:35.000000000 +0200
@@ -5692,7 +5692,7 @@ resolve_sal_pc (struct symtab_and_line *
bv = blockvector_for_pc_sect (sal->pc, 0, &b, sal->symtab);
if (bv != NULL)
{
- sym = block_linkage_function (b);
+ sym = block_function (b);
if (sym != NULL)
{
fixup_symbol_section (sym, sal->symtab->objfile);
diff -up -u -X /home/jkratoch/.diffi.list -rup sources-inline-works3-orig/gdb/testsuite/gdb.opt/inline-cmds.exp sources-inline-works3/gdb/testsuite/gdb.opt/inline-cmds.exp
--- sources-inline-works3-orig/gdb/testsuite/gdb.opt/inline-cmds.exp 2008-06-24 20:58:25.000000000 +0200
+++ sources-inline-works3/gdb/testsuite/gdb.opt/inline-cmds.exp 2008-06-26 15:49:12.000000000 +0200
@@ -42,8 +42,10 @@ if { [skip_inline_frame_tests] } {
# First, check that the things we expected to be inlined really were,
# and those that shouldn't be weren't.
-set line1 [gdb_get_line_number "set breakpoint 1 here"]
-gdb_breakpoint $line1
+# We test also inlining by the function name, otherwise we would use:
+# set line1 [gdb_get_line_number "set breakpoint 1 here"]
+# gdb_breakpoint $line1
+gdb_breakpoint "bar"
set line2 [gdb_get_line_number "set breakpoint 2 here"]
gdb_breakpoint $line2
gdb-6.8-inlining.patch:
--- NEW FILE gdb-6.8-inlining.patch ---
http://sourceware.org/ml/gdb-patches/2008-06/msg00239.html
+
http://sourceware.org/ml/gdb-patches/2008-06/msg00379.html
[ Backported for gdb-6.8fedora. ]
diff -up -u -X /home/jkratoch/.diffi.list -ruNp -x Makefile gdb-6.8-clean/gdb/Makefile.in gdb-6.8/gdb/Makefile.in
--- gdb-6.8-clean/gdb/Makefile.in 2008-06-24 22:58:31.000000000 +0200
+++ gdb-6.8/gdb/Makefile.in 2008-06-17 12:30:08.000000000 +0200
@@ -607,6 +607,7 @@ SFILES = ada-exp.y ada-lang.c ada-typepr
inf-loop.c \
infcall.c \
infcmd.c inflow.c infrun.c \
+ inline-frame.c \
interps.c \
jv-exp.y jv-lang.c jv-valprint.c jv-typeprint.c \
language.c linespec.c \
@@ -1068,6 +1069,7 @@ COMMON_OBS = $(DEPFILES) $(CONFIG_OBS) $
user-regs.o \
frame.o frame-unwind.o doublest.o \
frame-base.o \
+ inline-frame.o \
gnu-v2-abi.o gnu-v3-abi.o cp-abi.o cp-support.o \
cp-namespace.o \
reggroups.o regset.o \
@@ -2100,13 +2102,13 @@ dwarf2loc.o: dwarf2loc.c $(defs_h) $(ui_
$(gdbcore_h) $(target_h) $(inferior_h) $(ax_h) $(ax_gdb_h) \
$(regcache_h) $(objfiles_h) $(exceptions_h) $(elf_dwarf2_h) \
$(dwarf2expr_h) $(dwarf2loc_h) $(gdb_string_h) $(gdb_assert_h) \
- $(dwarf2block_h)
+ $(dwarf2block_h) $(block_h)
dwarf2read.o: dwarf2read.c $(defs_h) $(bfd_h) $(symtab_h) $(gdbtypes_h) \
$(objfiles_h) $(elf_dwarf2_h) $(buildsym_h) $(demangle_h) \
$(expression_h) $(filenames_h) $(macrotab_h) $(language_h) \
$(complaints_h) $(bcache_h) $(dwarf2expr_h) $(dwarf2loc_h) \
$(cp_support_h) $(hashtab_h) $(command_h) $(gdbcmd_h) \
- $(gdb_string_h) $(gdb_assert_h) $(dwarf2block_h) $(f_lang_h)
+ $(gdb_string_h) $(gdb_assert_h) $(dwarf2block_h) $(f_lang_h) $(block_h)
elfread.o: elfread.c $(defs_h) $(bfd_h) $(gdb_string_h) $(elf_bfd_h) \
$(elf_mips_h) $(symtab_h) $(symfile_h) $(objfiles_h) $(buildsym_h) \
$(stabsread_h) $(gdb_stabs_h) $(complaints_h) $(demangle_h) \
@@ -2155,7 +2157,8 @@ frame.o: frame.c $(defs_h) $(frame_h) $(
$(regcache_h) $(gdb_assert_h) $(gdb_string_h) $(user_regs_h) \
$(gdb_obstack_h) $(dummy_frame_h) $(sentinel_frame_h) $(gdbcore_h) \
$(annotate_h) $(language_h) $(frame_unwind_h) $(frame_base_h) \
- $(command_h) $(gdbcmd_h) $(observer_h) $(objfiles_h) $(exceptions_h)
+ $(command_h) $(gdbcmd_h) $(observer_h) $(objfiles_h) $(exceptions_h) \
+ $(block_h)
frame-unwind.o: frame-unwind.c $(defs_h) $(frame_h) $(frame_unwind_h) \
$(gdb_assert_h) $(dummy_frame_h) $(gdb_obstack_h)
frv-linux-tdep.o: frv-linux-tdep.c $(defs_h) $(gdbcore_h) $(target_h) \
@@ -2329,7 +2332,7 @@ infcmd.o: infcmd.c $(defs_h) $(gdb_strin
$(objfiles_h) $(completer_h) $(ui_out_h) $(event_top_h) \
$(parser_defs_h) $(regcache_h) $(reggroups_h) $(block_h) \
$(solib_h) $(gdb_assert_h) $(observer_h) $(target_descriptions_h) \
- $(user_regs_h)
+ $(user_regs_h) $(gdbthread_h)
inf-loop.o: inf-loop.c $(defs_h) $(inferior_h) $(target_h) $(event_loop_h) \
$(event_top_h) $(inf_loop_h) $(remote_h) $(exceptions_h)
inflow.o: inflow.c $(defs_h) $(frame_h) $(inferior_h) $(command_h) \
@@ -2347,6 +2350,8 @@ infrun.o: infrun.c $(defs_h) $(gdb_strin
inf-ttrace.o: inf-ttrace.c $(defs_h) $(command_h) $(gdbcore_h) \
$(gdbthread_h) $(inferior_h) $(target_h) \
$(gdb_assert_h) $(gdb_string_h) $(inf_child_h) $(inf_ttrace_h)
+inline-frame.o: inline-frame.c $(defs_h) $(frame_unwind_h) $(block_h) \
+ $(symtab_h) $(addrmap_h) $(gdb_assert_h)
interps.o: interps.c $(defs_h) $(gdbcmd_h) $(ui_out_h) $(event_loop_h) \
$(event_top_h) $(interps_h) $(completer_h) $(gdb_string_h) \
$(gdb_events_h) $(gdb_assert_h) $(top_h) $(exceptions_h)
diff -up -u -X /home/jkratoch/.diffi.list -ruNp -x Makefile gdb-6.8-clean/gdb/ada-lang.c gdb-6.8/gdb/ada-lang.c
--- gdb-6.8-clean/gdb/ada-lang.c 2008-06-24 22:58:31.000000000 +0200
+++ gdb-6.8/gdb/ada-lang.c 2008-06-16 20:11:43.000000000 +0200
@@ -4624,7 +4624,7 @@ remove_irrelevant_renamings (struct ada_
if (current_block == NULL)
return nsyms;
- current_function = block_function (current_block);
+ current_function = block_linkage_function (current_block);
if (current_function == NULL)
return nsyms;
@@ -6778,7 +6778,7 @@ ada_find_renaming_symbol (const char *na
static struct symbol *
find_old_style_renaming_symbol (const char *name, struct block *block)
{
- const struct symbol *function_sym = block_function (block);
+ const struct symbol *function_sym = block_linkage_function (block);
char *rename;
if (function_sym != NULL)
@@ -9946,7 +9946,7 @@ ada_unhandled_exception_name_addr_from_r
the frame corresponding to RAISE_SYM_NAME. This frame is
at least 3 levels up, so we simply skip the first 3 frames
without checking the name of their associated function. */
- fi = get_current_frame ();
+ fi = get_current_user_frame ();
for (frame_level = 0; frame_level < 3; frame_level += 1)
if (fi != NULL)
fi = get_prev_frame (fi);
@@ -10041,7 +10041,7 @@ print_it_exception (enum exception_catch
exception_name [sizeof (exception_name) - 1] = '\0';
}
- ada_find_printable_frame (get_current_frame ());
+ ada_find_printable_frame (get_current_user_frame ());
annotate_catchpoint (b->number);
switch (ex)
diff -up -u -X /home/jkratoch/.diffi.list -ruNp -x Makefile gdb-6.8-clean/gdb/block.c gdb-6.8/gdb/block.c
--- gdb-6.8-clean/gdb/block.c 2008-01-01 23:53:09.000000000 +0100
+++ gdb-6.8/gdb/block.c 2008-06-16 20:11:43.000000000 +0200
@@ -47,23 +47,40 @@ contained_in (const struct block *a, con
{
if (!a || !b)
return 0;
- return BLOCK_START (a) >= BLOCK_START (b)
- && BLOCK_END (a) <= BLOCK_END (b);
-}
+ do
+ {
+ if (a == b)
+ return 1;
+ a = BLOCK_SUPERBLOCK (a);
+ }
+ while (a != NULL);
+
+ return 0;
+}
/* Return the symbol for the function which contains a specified
- lexical block, described by a struct block BL. */
+ lexical block, described by a struct block BL. Inlined functions
+ are never returned. */
struct symbol *
-block_function (const struct block *bl)
+block_linkage_function (const struct block *bl)
{
- while (BLOCK_FUNCTION (bl) == 0 && BLOCK_SUPERBLOCK (bl) != 0)
+ while ((BLOCK_FUNCTION (bl) == NULL || block_inlined_p (bl))
+ && BLOCK_SUPERBLOCK (bl) != NULL)
bl = BLOCK_SUPERBLOCK (bl);
return BLOCK_FUNCTION (bl);
}
+/* Return one if BLOCK represents an inlined function. */
+
+int
+block_inlined_p (const struct block *block)
+{
+ return BLOCK_INLINED (block);
+}
+
/* Return the blockvector immediately containing the innermost lexical
block containing the specified pc value and section, or 0 if there
is none. PBLOCK is a pointer to the block. If PBLOCK is NULL, we
@@ -304,6 +321,7 @@ allocate_block (struct obstack *obstack)
BLOCK_SUPERBLOCK (bl) = NULL;
BLOCK_DICT (bl) = NULL;
BLOCK_NAMESPACE (bl) = NULL;
+ BLOCK_INLINED (bl) = 0;
return bl;
}
diff -up -u -X /home/jkratoch/.diffi.list -ruNp -x Makefile gdb-6.8-clean/gdb/block.h gdb-6.8/gdb/block.h
--- gdb-6.8-clean/gdb/block.h 2008-01-01 23:53:09.000000000 +0100
+++ gdb-6.8/gdb/block.h 2008-06-16 20:11:43.000000000 +0200
@@ -65,7 +65,7 @@ struct block
CORE_ADDR endaddr;
/* The symbol that names this block, if the block is the body of a
- function; otherwise, zero. */
+ function (real or inlined); otherwise, zero. */
struct symbol *function;
@@ -96,6 +96,9 @@ struct block
cplus_specific;
}
language_specific;
+
+ /* Set if this block corresponds to an inlined function. */
+ unsigned char inlined;
};
#define BLOCK_START(bl) (bl)->startaddr
@@ -104,6 +107,7 @@ struct block
#define BLOCK_SUPERBLOCK(bl) (bl)->superblock
#define BLOCK_DICT(bl) (bl)->dict
#define BLOCK_NAMESPACE(bl) (bl)->language_specific.cplus_specific.namespace
+#define BLOCK_INLINED(bl) (bl)->inlined
/* Macro to loop through all symbols in a block BL, in no particular
order. ITER helps keep track of the iteration, and should be a
@@ -132,7 +136,9 @@ struct blockvector
enum { GLOBAL_BLOCK = 0, STATIC_BLOCK = 1, FIRST_LOCAL_BLOCK = 2 };
[...3178 lines suppressed...]
+{
+ int val;
+
+ x = 7;
+ y = 8;
+ bar ();
+
+ val = func1 (result);
+ result = val;
+
+ val = func2 (result);
+ result = val;
+
+ return 0;
+}
diff -up -u -X /home/jkratoch/.diffi.list -ruNp -x Makefile gdb-6.8-clean/gdb/testsuite/gdb.opt/inline-locals.exp gdb-6.8/gdb/testsuite/gdb.opt/inline-locals.exp
--- gdb-6.8-clean/gdb/testsuite/gdb.opt/inline-locals.exp 1970-01-01 01:00:00.000000000 +0100
+++ gdb-6.8/gdb/testsuite/gdb.opt/inline-locals.exp 2008-06-23 01:20:22.000000000 +0200
@@ -0,0 +1,95 @@
+# Copyright 2007 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+set testfile "inline-locals"
+set srcfile ${testfile}.c
+set binfile ${objdir}/${subdir}/${testfile}
+
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
+ executable {debug optimize=-O2}] != "" } {
+ untested inline-locals.exp
+ return -1
+}
+
+gdb_exit
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_load ${binfile}
+
+runto_main
+
+get_compiler_info $binfile
+get_debug_format
+if { [skip_inline_var_tests] } {
+ untested inline-bt.exp
+ return
+}
+
+set no_frames [skip_inline_frame_tests]
+
+set line1 [gdb_get_line_number "set breakpoint 1 here"]
+gdb_breakpoint $line1
+
+gdb_test "continue" ".*set breakpoint 1 here.*" "continue to bar (1)"
+
+gdb_test "continue" ".*set breakpoint 1 here.*" "continue to bar (2)"
+
+if { ! $no_frames } {
+ gdb_test "backtrace" "#0 bar.*#1 .*func1.*#2 .*main.*" \
+ "backtrace from bar (2)"
+ gdb_test "up" "#1 .*func1 .* at .*" "up from bar (2)"
+ gdb_test "info frame" ".*inlined into frame.*" "func1 inlined (2)"
+ gdb_test "info locals" "array = {.*}" "info locals above bar (2)"
+ gdb_test "info args" "arg1 = .*" "info args above bar (2)"
+} else {
+ gdb_test "up" "#1 .*main .* at .*" "up from bar (2)"
+ gdb_test "info locals" ".*arg1 = 0.*" "info locals above bar (2)"
+}
+
+# Make sure that locals on the stack are found. This is an array to
+# prevent it from living in a register.
+if [test_compiler_info "gcc-4-3-*"] {
+ setup_kfail *-*-* "gcc/debug.optimization"
+}
+gdb_test "print array\[0\]" "\\\$$decimal = 0" "print local (2)"
+
+if { ! $no_frames } {
+ # Verify that we do not print out variables from the inlined
+ # function's caller.
+ gdb_test "print val" "No symbol \"val\" in current context\\." \
+ "print out of scope local"
+}
+
+# Repeat the tests from a depth of two inlined functions, and with a
+# more interesting value in the local array.
+gdb_test "continue" ".*set breakpoint 1 here.*" "continue to bar (3)"
+if { ! $no_frames } {
+ gdb_test "backtrace" "#0 bar.*#1 .*func1.*#2 .*func2.*#3 .*main.*" \
+ "backtrace from bar (3)"
+ gdb_test "up" "#1 .*func1 .* at .*" "up from bar (3)"
+ gdb_test "info frame" ".*inlined into frame.*" "func1 inlined (3)"
+ gdb_test "info locals" "array = {.*}" "info locals above bar (3)"
+ gdb_test "info args" "arg1 = .*" "info args above bar (3)"
+} else {
+ gdb_test "up" "#1 .*main .* at .*" "up from bar (3)"
+ gdb_test "info locals" ".*arg1 = 1.*" "info locals above bar (3a)"
+ gdb_test "info locals" ".*arg2 = 184.*" "info locals above bar (3b)"
+}
+
+if [test_compiler_info "gcc-4-3-*"] {
+ setup_kfail *-*-* "gcc/debug.optimization"
+}
+gdb_test "print array\[0\]" "\\\$$decimal = 184" "print local (3)"
diff -up -u -X /home/jkratoch/.diffi.list -ruNp -x Makefile gdb-6.8-clean/gdb/testsuite/lib/gdb.exp gdb-6.8/gdb/testsuite/lib/gdb.exp
--- gdb-6.8-clean/gdb/testsuite/lib/gdb.exp 2008-06-24 22:58:31.000000000 +0200
+++ gdb-6.8/gdb/testsuite/lib/gdb.exp 2008-06-16 20:11:43.000000000 +0200
@@ -1357,6 +1357,37 @@ proc skip_hp_tests {} {
return $skip_hp
}
+# Return whether we should skip tests for showing inlined functions in
+# backtraces. Requires get_compiler_info and get_debug_format.
+
+proc skip_inline_frame_tests {} {
+ # GDB only recognizes inlining information in DWARF 2 (DWARF 3).
+ if { ! [test_debug_format "DWARF 2"] } {
+ return 1
+ }
+
+ # GCC before 4.1 does not emit DW_AT_call_file / DW_AT_call_line.
+ if { ([test_compiler_info "gcc-2-*"]
+ || [test_compiler_info "gcc-3-*"]
+ || [test_compiler_info "gcc-4-0"]) } {
+ return 1
+ }
+
+ return 0
+}
+
+# Return whether we should skip tests for showing variables from
+# inlined functions. Requires get_compiler_info and get_debug_format.
+
+proc skip_inline_var_tests {} {
+ # GDB only recognizes inlining information in DWARF 2 (DWARF 3).
+ if { ! [test_debug_format "DWARF 2"] } {
+ return 1
+ }
+
+ return 0
+}
+
set compiler_info "unknown"
set gcc_compiled 0
set hp_cc_compiler 0
diff -up -u -X /home/jkratoch/.diffi.list -ruNp -x Makefile gdb-6.8-clean/gdb/thread.c gdb-6.8/gdb/thread.c
--- gdb-6.8-clean/gdb/thread.c 2008-06-24 22:58:30.000000000 +0200
+++ gdb-6.8/gdb/thread.c 2008-06-16 20:11:43.000000000 +0200
@@ -582,7 +582,7 @@ thread_apply_all_command (char *cmd, int
do_cleanups (old_chain);
/* Print stack frame only if we changed thread. */
if (thread_has_changed)
- print_stack_frame (get_current_frame (), 1, SRC_LINE);
+ print_stack_frame (get_selected_frame (NULL), 1, SRC_LINE);
}
@@ -667,7 +667,7 @@ thread_apply_command (char *tidlist, int
do_cleanups (old_chain);
/* Print stack frame only if we changed thread. */
if (thread_has_changed)
- print_stack_frame (get_current_frame (), 1, SRC_LINE);
+ print_stack_frame (get_selected_frame (NULL), 1, SRC_LINE);
}
/* Switch to the specified thread. Will dispatch off to thread_apply_command
diff -up -u -X /home/jkratoch/.diffi.list -ruNp -x Makefile gdb-6.8-clean/gdb/tracepoint.c gdb-6.8/gdb/tracepoint.c
--- gdb-6.8-clean/gdb/tracepoint.c 2008-02-05 17:05:56.000000000 +0100
+++ gdb-6.8/gdb/tracepoint.c 2008-06-16 20:11:43.000000000 +0200
@@ -2165,7 +2165,7 @@ trace_find_line_command (char *args, int
{
if (args == 0 || *args == 0)
{
- sal = find_pc_line (get_frame_pc (get_current_frame ()), 0);
+ sal = find_pc_line (get_frame_pc (get_selected_frame (NULL)), 0);
sals.nelts = 1;
sals.sals = (struct symtab_and_line *)
xmalloc (sizeof (struct symtab_and_line));
diff -up -u -X /home/jkratoch/.diffi.list -ruNp -x Makefile gdb-6.8-clean/gdb/valops.c gdb-6.8/gdb/valops.c
--- gdb-6.8-clean/gdb/valops.c 2008-06-24 22:58:31.000000000 +0200
+++ gdb-6.8/gdb/valops.c 2008-06-16 20:11:43.000000000 +0200
@@ -845,7 +845,7 @@ value_of_variable (struct symbol *var, s
frame = block_innermost_frame (b);
if (!frame)
{
- if (BLOCK_FUNCTION (b)
+ if (BLOCK_FUNCTION (b) && !block_inlined_p (b)
&& SYMBOL_PRINT_NAME (BLOCK_FUNCTION (b)))
error (_("No frame is currently executing in block %s."),
SYMBOL_PRINT_NAME (BLOCK_FUNCTION (b)));
Index: gdb.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb.spec,v
retrieving revision 1.293
retrieving revision 1.294
diff -u -r1.293 -r1.294
--- gdb.spec 20 Jun 2008 08:37:16 -0000 1.293
+++ gdb.spec 3 Jul 2008 11:05:26 -0000 1.294
@@ -13,7 +13,7 @@
# The release always contains a leading reserved number, start it at 1.
# `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
-Release: 12%{?_with_upstream:.upstream}%{?dist}
+Release: 13%{?_with_upstream:.upstream}%{?dist}
License: GPLv3+
Group: Development/Debuggers
@@ -378,6 +378,10 @@
Patch325: gdb-6.8-forced-enable-tui.patch
Patch326: gdb-6.8-tui-singlebinary.patch
+# Support transparent debugging of inlined functions for an optimized code.
+Patch327: gdb-6.8-inlining.patch
+Patch328: gdb-6.8-inlining-by-name.patch
+
BuildRequires: ncurses-devel glibc-devel gcc make gzip texinfo dejagnu gettext
BuildRequires: flex bison sharutils expat-devel
Requires: readline
@@ -563,6 +567,8 @@
%patch324 -p1
%patch325 -p1
%patch326 -p1
+%patch327 -p1
+%patch328 -p1
%patch124 -p1
find -name "*.orig" | xargs rm -f
@@ -822,6 +828,9 @@
%endif
%changelog
+* Thu Jul 3 2008 Jan Kratochvil <jan.kratochvil at redhat.com> - 6.8-13
+- Support transparent debugging of inlined functions for an optimized code.
+
* Fri Jun 20 2008 Jan Kratochvil <jan.kratochvil at redhat.com> - 6.8-12
- Remove the gdb/gdbtui binaries duplicity.
- Previous message: rpms/imsettings/devel .cvsignore, 1.4, 1.5 imsettings.spec, 1.6, 1.7 sources, 1.3, 1.4 imsettings.diff, 1.1, NONE
- Next message: rpms/cman/F-9 cman.spec,1.104,1.105
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the scm-commits
mailing list