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
|
||||
|
||||
|
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.
|
||||
# This file and all modifications and additions to the pristine
|
||||
@ -23,7 +23,7 @@ License: GPL v2 or later
|
||||
Group: Development/Tools/Debuggers
|
||||
Autoreqprov: on
|
||||
PreReq: %{install_info_prereq}
|
||||
Version: 6.6.50.20070713
|
||||
Version: 6.6.50.20070726
|
||||
Release: 1
|
||||
Summary: The GNU Debugger
|
||||
Source: gdb-%{version}-cvs.tar.bz2
|
||||
@ -36,7 +36,6 @@ Patch6: sect-index-text.diff
|
||||
Patch7: pie-relocate.diff
|
||||
Patch8: mst-solib-trampoline.diff
|
||||
Patch10: ppc-long-double.diff
|
||||
Patch11: elf-symtab-read.diff
|
||||
Patch12: find-pc-sect-line.diff
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
|
||||
@ -75,7 +74,6 @@ Authors:
|
||||
%patch7
|
||||
%patch8
|
||||
%patch10
|
||||
%patch11
|
||||
%patch12
|
||||
|
||||
%build
|
||||
@ -132,6 +130,8 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Thu Jul 26 2007 - schwab@suse.de
|
||||
- Update to head of trunk.
|
||||
* Fri Jul 13 2007 - schwab@suse.de
|
||||
- Update to head of trunk.
|
||||
* Sun Jun 24 2007 - schwab@suse.de
|
||||
|
@ -579,81 +579,3 @@
|
||||
/* 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
|
||||
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