This commit is contained in:
parent
7df59f4d85
commit
065cc200bc
@ -1,36 +0,0 @@
|
|||||||
Index: gdb/elfread.c
|
|
||||||
===================================================================
|
|
||||||
RCS file: /cvs/src/src/gdb/elfread.c,v
|
|
||||||
retrieving revision 1.61
|
|
||||||
diff -u -a -p -u -p -a -r1.61 gdb/elfread.c
|
|
||||||
--- gdb/elfread.c 18 Jun 2007 15:46:38 -0000 1.61
|
|
||||||
+++ gdb/elfread.c 21 Jun 2007 15:23:57 -0000
|
|
||||||
@@ -240,7 +240,11 @@ elf_symtab_read (struct objfile *objfile
|
|
||||||
|
|
||||||
offset = ANOFFSET (objfile->section_offsets, sym->section->index);
|
|
||||||
if (dynamic
|
|
||||||
- && sym->section == &bfd_und_section
|
|
||||||
+ && (sym->section == &bfd_und_section
|
|
||||||
+ /* On PowerPC64 we also want to add the function descriptor
|
|
||||||
+ symbols. */
|
|
||||||
+ || (strcmp (sym->section->name, ".opd") == 0
|
|
||||||
+ && sym->flags & (BSF_GLOBAL | BSF_WEAK)))
|
|
||||||
&& (sym->flags & BSF_FUNCTION))
|
|
||||||
{
|
|
||||||
struct minimal_symbol *msym;
|
|
||||||
@@ -365,7 +369,14 @@ elf_symtab_read (struct objfile *objfile
|
|
||||||
}
|
|
||||||
else if (sym->section->flags & SEC_ALLOC)
|
|
||||||
{
|
|
||||||
- if (sym->flags & (BSF_GLOBAL | BSF_WEAK))
|
|
||||||
+ if (sym->flags & BSF_FUNCTION)
|
|
||||||
+ {
|
|
||||||
+ if (sym->flags & (BSF_GLOBAL | BSF_WEAK))
|
|
||||||
+ ms_type = mst_solib_trampoline;
|
|
||||||
+ else
|
|
||||||
+ continue;
|
|
||||||
+ }
|
|
||||||
+ else if (sym->flags & (BSF_GLOBAL | BSF_WEAK))
|
|
||||||
{
|
|
||||||
if (sym->section->flags & SEC_LOAD)
|
|
||||||
{
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:cae27a0c770ac049366224820e584aea015961e421a2aa3c2175e5a021fc649f
|
|
||||||
size 14344912
|
|
3
gdb-6.6.50.20070726-cvs.tar.bz2
Normal file
3
gdb-6.6.50.20070726-cvs.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:ad29d5a95c3a1c28388c16d1b85f815d9970994725d1acb70419017d667783ee
|
||||||
|
size 14359046
|
@ -1,3 +1,8 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Jul 26 12:41:05 CEST 2007 - schwab@suse.de
|
||||||
|
|
||||||
|
- Update to head of trunk.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Jul 13 11:46:27 CEST 2007 - schwab@suse.de
|
Fri Jul 13 11:46:27 CEST 2007 - schwab@suse.de
|
||||||
|
|
||||||
|
8
gdb.spec
8
gdb.spec
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# spec file for package gdb (Version 6.6.50.20070713)
|
# spec file for package gdb (Version 6.6.50.20070726)
|
||||||
#
|
#
|
||||||
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||||
# This file and all modifications and additions to the pristine
|
# This file and all modifications and additions to the pristine
|
||||||
@ -23,7 +23,7 @@ License: GPL v2 or later
|
|||||||
Group: Development/Tools/Debuggers
|
Group: Development/Tools/Debuggers
|
||||||
Autoreqprov: on
|
Autoreqprov: on
|
||||||
PreReq: %{install_info_prereq}
|
PreReq: %{install_info_prereq}
|
||||||
Version: 6.6.50.20070713
|
Version: 6.6.50.20070726
|
||||||
Release: 1
|
Release: 1
|
||||||
Summary: The GNU Debugger
|
Summary: The GNU Debugger
|
||||||
Source: gdb-%{version}-cvs.tar.bz2
|
Source: gdb-%{version}-cvs.tar.bz2
|
||||||
@ -36,7 +36,6 @@ Patch6: sect-index-text.diff
|
|||||||
Patch7: pie-relocate.diff
|
Patch7: pie-relocate.diff
|
||||||
Patch8: mst-solib-trampoline.diff
|
Patch8: mst-solib-trampoline.diff
|
||||||
Patch10: ppc-long-double.diff
|
Patch10: ppc-long-double.diff
|
||||||
Patch11: elf-symtab-read.diff
|
|
||||||
Patch12: find-pc-sect-line.diff
|
Patch12: find-pc-sect-line.diff
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
|
|
||||||
@ -75,7 +74,6 @@ Authors:
|
|||||||
%patch7
|
%patch7
|
||||||
%patch8
|
%patch8
|
||||||
%patch10
|
%patch10
|
||||||
%patch11
|
|
||||||
%patch12
|
%patch12
|
||||||
|
|
||||||
%build
|
%build
|
||||||
@ -132,6 +130,8 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Jul 26 2007 - schwab@suse.de
|
||||||
|
- Update to head of trunk.
|
||||||
* Fri Jul 13 2007 - schwab@suse.de
|
* Fri Jul 13 2007 - schwab@suse.de
|
||||||
- Update to head of trunk.
|
- Update to head of trunk.
|
||||||
* Sun Jun 24 2007 - schwab@suse.de
|
* Sun Jun 24 2007 - schwab@suse.de
|
||||||
|
@ -579,81 +579,3 @@
|
|||||||
/* If the mtime has changed between the time we set new_modtime
|
/* If the mtime has changed between the time we set new_modtime
|
||||||
and now, we *want* this to be out of date, so don't call stat
|
and now, we *want* this to be out of date, so don't call stat
|
||||||
again now. */
|
again now. */
|
||||||
@@ -2724,6 +2731,7 @@ clear_symtab_users (void)
|
|
||||||
set_default_breakpoint (0, 0, 0, 0);
|
|
||||||
clear_pc_function_cache ();
|
|
||||||
observer_notify_new_objfile (NULL);
|
|
||||||
+ varobj_refresh ();
|
|
||||||
|
|
||||||
/* Clear globals which might have pointed into a removed objfile.
|
|
||||||
FIXME: It's not clear which of these are supposed to persist
|
|
||||||
--- gdb/varobj.c
|
|
||||||
+++ gdb/varobj.c
|
|
||||||
@@ -1077,6 +1077,58 @@ install_new_value (struct varobj *var, s
|
|
||||||
return changed;
|
|
||||||
}
|
|
||||||
|
|
||||||
+void
|
|
||||||
+varobj_refresh (void)
|
|
||||||
+{
|
|
||||||
+ struct varobj *var;
|
|
||||||
+ struct varobj_root *croot;
|
|
||||||
+ int mycount = rootcount;
|
|
||||||
+ char * name;
|
|
||||||
+
|
|
||||||
+ croot = rootlist;
|
|
||||||
+ while (croot != NULL && mycount > 0)
|
|
||||||
+ {
|
|
||||||
+ var = croot->rootvar;
|
|
||||||
+
|
|
||||||
+ /* Get rid of the memory for the old expression. This also leaves
|
|
||||||
+ var->root->exp == NULL, which is ok for the parsing below. */
|
|
||||||
+ free_current_contents (&var->root->exp);
|
|
||||||
+
|
|
||||||
+ value_free (var->value);
|
|
||||||
+ var->type = NULL;
|
|
||||||
+
|
|
||||||
+ name = xstrdup (var->name);
|
|
||||||
+
|
|
||||||
+ /* Reparse the expression. Wrap the call to parse expression, so we
|
|
||||||
+ can return a sensible error. */
|
|
||||||
+ if (!gdb_parse_exp_1 (&name, var->root->valid_block, 0, &var->root->exp))
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
+ /* We definitively need to catch errors here. If
|
|
||||||
+ evaluate_expression succeeds we got the value we wanted. But if
|
|
||||||
+ it fails, we still go on with a call to evaluate_type. */
|
|
||||||
+ if (gdb_evaluate_expression (var->root->exp, &var->value))
|
|
||||||
+ {
|
|
||||||
+ /* no error */
|
|
||||||
+ release_value (var->value);
|
|
||||||
+ if (value_lazy (var->value))
|
|
||||||
+ gdb_value_fetch_lazy (var->value);
|
|
||||||
+ }
|
|
||||||
+ else
|
|
||||||
+ var->value = evaluate_type (var->root->exp);
|
|
||||||
+
|
|
||||||
+ var->type = value_type (var->value);
|
|
||||||
+
|
|
||||||
+ mycount--;
|
|
||||||
+ croot = croot->next;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (mycount || croot != NULL)
|
|
||||||
+ warning
|
|
||||||
+ ("varobj_refresh: assertion failed - wrong tally of root vars (%d:%d)",
|
|
||||||
+ rootcount, mycount);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
/* Update the values for a variable and its children. This is a
|
|
||||||
two-pronged attack. First, re-parse the value for the root's
|
|
||||||
expression to see if it's changed. Then go all the way
|
|
||||||
--- gdb/varobj.h
|
|
||||||
+++ gdb/varobj.h
|
|
||||||
@@ -114,4 +114,6 @@ extern int varobj_update (struct varobj
|
|
||||||
|
|
||||||
extern void varobj_invalidate (void);
|
|
||||||
|
|
||||||
+extern void varobj_refresh (void);
|
|
||||||
+
|
|
||||||
#endif /* VAROBJ_H */
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user