Rebase to FSF GDB 7.5.50.20130118 (pre-7.6 snapshot).
This commit is contained in:
parent
ab816baf60
commit
556378e101
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,2 +1,2 @@
|
|||||||
/gdb-libstdc++-v3-python-r155978.tar.bz2
|
/gdb-libstdc++-v3-python-r155978.tar.bz2
|
||||||
/gdb-7.5.1.tar.bz2
|
/gdb-7.5.50.20130118.tar.bz2
|
||||||
|
@ -1,25 +1,29 @@
|
|||||||
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=231832
|
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=231832
|
||||||
|
|
||||||
|
|
||||||
Index: gdb-7.4.50.20111218/gdb/symmisc.c
|
Index: gdb-7.5.50.20130118/gdb/symmisc.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20111218.orig/gdb/symmisc.c 2011-04-04 17:19:59.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/symmisc.c 2013-01-18 23:54:57.478974289 +0100
|
||||||
+++ gdb-7.4.50.20111218/gdb/symmisc.c 2011-12-19 00:28:18.189232014 +0100
|
+++ gdb-7.5.50.20130118/gdb/symmisc.c 2013-01-18 23:55:41.650930254 +0100
|
||||||
@@ -147,8 +147,8 @@ print_objfile_statistics (void)
|
@@ -148,10 +148,10 @@ print_objfile_statistics (void)
|
||||||
if (OBJSTAT (objfile, sz_strtab) > 0)
|
if (OBJSTAT (objfile, sz_strtab) > 0)
|
||||||
printf_filtered (_(" Space used by a.out string tables: %d\n"),
|
printf_filtered (_(" Space used by a.out string tables: %d\n"),
|
||||||
OBJSTAT (objfile, sz_strtab));
|
OBJSTAT (objfile, sz_strtab));
|
||||||
- printf_filtered (_(" Total memory used for objfile obstack: %d\n"),
|
- printf_filtered (_(" Total memory used for objfile obstack: %d\n"),
|
||||||
- obstack_memory_used (&objfile->objfile_obstack));
|
- obstack_memory_used (&objfile->objfile_obstack));
|
||||||
|
- printf_filtered (_(" Total memory used for BFD obstack: %d\n"),
|
||||||
|
- obstack_memory_used (&objfile->per_bfd->storage_obstack));
|
||||||
+ printf_filtered (_(" Total memory used for objfile obstack: %ld\n"),
|
+ printf_filtered (_(" Total memory used for objfile obstack: %ld\n"),
|
||||||
+ (long) obstack_memory_used (&objfile->objfile_obstack));
|
+ (long) obstack_memory_used (&objfile->objfile_obstack));
|
||||||
|
+ printf_filtered (_(" Total memory used for BFD obstack: %ld\n"),
|
||||||
|
+ (long) obstack_memory_used (&objfile->per_bfd->storage_obstack));
|
||||||
printf_filtered (_(" Total memory used for psymbol cache: %d\n"),
|
printf_filtered (_(" Total memory used for psymbol cache: %d\n"),
|
||||||
bcache_memory_used (psymbol_bcache_get_bcache
|
bcache_memory_used (psymbol_bcache_get_bcache
|
||||||
(objfile->psymbol_cache)));
|
(objfile->psymbol_cache)));
|
||||||
Index: gdb-7.4.50.20111218/include/obstack.h
|
Index: gdb-7.5.50.20130118/include/obstack.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20111218.orig/include/obstack.h 2011-10-22 03:35:29.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/include/obstack.h 2013-01-18 23:54:57.478974289 +0100
|
||||||
+++ gdb-7.4.50.20111218/include/obstack.h 2011-12-19 00:28:18.189232014 +0100
|
+++ gdb-7.5.50.20130118/include/obstack.h 2013-01-18 23:55:10.256999188 +0100
|
||||||
@@ -188,31 +188,31 @@ struct obstack /* control current objec
|
@@ -188,31 +188,31 @@ struct obstack /* control current objec
|
||||||
|
|
||||||
/* Declare the external functions we use; they are in obstack.c. */
|
/* Declare the external functions we use; they are in obstack.c. */
|
||||||
@ -125,10 +129,10 @@ Index: gdb-7.4.50.20111218/include/obstack.h
|
|||||||
if (__o->chunk_limit - __o->next_free < __len) \
|
if (__o->chunk_limit - __o->next_free < __len) \
|
||||||
_obstack_newchunk (__o, __len); \
|
_obstack_newchunk (__o, __len); \
|
||||||
obstack_blank_fast (__o, __len); \
|
obstack_blank_fast (__o, __len); \
|
||||||
Index: gdb-7.4.50.20111218/libiberty/obstack.c
|
Index: gdb-7.5.50.20130118/libiberty/obstack.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20111218.orig/libiberty/obstack.c 2005-05-10 17:33:33.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/libiberty/obstack.c 2013-01-18 23:54:57.478974289 +0100
|
||||||
+++ gdb-7.4.50.20111218/libiberty/obstack.c 2011-12-19 00:28:18.191232006 +0100
|
+++ gdb-7.5.50.20130118/libiberty/obstack.c 2013-01-18 23:55:10.256999188 +0100
|
||||||
@@ -44,9 +44,11 @@
|
@@ -44,9 +44,11 @@
|
||||||
#if !defined (_LIBC) && defined (__GNU_LIBRARY__) && __GNU_LIBRARY__ > 1
|
#if !defined (_LIBC) && defined (__GNU_LIBRARY__) && __GNU_LIBRARY__ > 1
|
||||||
#include <gnu-versions.h>
|
#include <gnu-versions.h>
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
Index: gdb-7.2.50.20110107/gdb/gcore.c
|
Index: gdb-7.5.50.20130118/gdb/gcore.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.2.50.20110107.orig/gdb/gcore.c 2011-01-05 23:22:49.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/gcore.c 2013-01-18 23:50:56.698573186 +0100
|
||||||
+++ gdb-7.2.50.20110107/gdb/gcore.c 2011-01-07 09:04:28.000000000 +0100
|
+++ gdb-7.5.50.20130118/gdb/gcore.c 2013-01-18 23:52:29.636705040 +0100
|
||||||
@@ -534,8 +534,14 @@ gcore_copy_callback (bfd *obfd, asection
|
@@ -549,8 +549,14 @@ gcore_copy_callback (bfd *obfd, asection
|
||||||
if (size > total_size)
|
if (size > total_size)
|
||||||
size = total_size;
|
size = total_size;
|
||||||
|
|
||||||
@ -12,7 +12,7 @@ Index: gdb-7.2.50.20110107/gdb/gcore.c
|
|||||||
if (target_read_memory (bfd_section_vma (obfd, osec) + offset,
|
if (target_read_memory (bfd_section_vma (obfd, osec) + offset,
|
||||||
- memhunk, size) != 0)
|
- memhunk, size) != 0)
|
||||||
+ memhunk, size) != 0
|
+ memhunk, size) != 0
|
||||||
+ && (strcmp (gdbarch_bfd_arch_info (target_gdbarch)->arch_name,
|
+ && (strcmp (gdbarch_bfd_arch_info (target_gdbarch ())->arch_name,
|
||||||
+ "ia64")
|
+ "ia64")
|
||||||
+ || bfd_section_vma (obfd, osec) != 0))
|
+ || bfd_section_vma (obfd, osec) != 0))
|
||||||
{
|
{
|
||||||
|
@ -11,11 +11,11 @@
|
|||||||
|
|
||||||
* gdb.texinfo (File Options): Document --readnever.
|
* gdb.texinfo (File Options): Document --readnever.
|
||||||
|
|
||||||
Index: gdb-7.4.50.20120703/gdb/doc/gdb.texinfo
|
Index: gdb-7.5.50.20130118/gdb/doc/gdb.texinfo
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20120703.orig/gdb/doc/gdb.texinfo 2012-07-03 17:30:07.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/doc/gdb.texinfo 2013-01-18 22:54:22.521155527 +0100
|
||||||
+++ gdb-7.4.50.20120703/gdb/doc/gdb.texinfo 2012-07-03 17:31:40.695642449 +0200
|
+++ gdb-7.5.50.20130118/gdb/doc/gdb.texinfo 2013-01-18 22:58:15.064596580 +0100
|
||||||
@@ -1023,6 +1023,12 @@ Read each symbol file's entire symbol ta
|
@@ -1026,6 +1026,12 @@ Read each symbol file's entire symbol ta
|
||||||
the default, which is to read it incrementally as it is needed.
|
the default, which is to read it incrementally as it is needed.
|
||||||
This makes startup slower, but makes future operations faster.
|
This makes startup slower, but makes future operations faster.
|
||||||
|
|
||||||
@ -28,11 +28,11 @@ Index: gdb-7.4.50.20120703/gdb/doc/gdb.texinfo
|
|||||||
@end table
|
@end table
|
||||||
|
|
||||||
@node Mode Options
|
@node Mode Options
|
||||||
Index: gdb-7.4.50.20120703/gdb/main.c
|
Index: gdb-7.5.50.20130118/gdb/main.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20120703.orig/gdb/main.c 2012-07-03 17:30:07.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/main.c 2013-01-18 22:54:22.523155531 +0100
|
||||||
+++ gdb-7.4.50.20120703/gdb/main.c 2012-07-03 17:31:40.696642448 +0200
|
+++ gdb-7.5.50.20130118/gdb/main.c 2013-01-18 22:58:15.065596598 +0100
|
||||||
@@ -414,6 +414,7 @@ captured_main (void *data)
|
@@ -445,6 +445,7 @@ captured_main (void *data)
|
||||||
{"xdb", no_argument, &xdb_commands, 1},
|
{"xdb", no_argument, &xdb_commands, 1},
|
||||||
{"dbx", no_argument, &dbx_commands, 1},
|
{"dbx", no_argument, &dbx_commands, 1},
|
||||||
{"readnow", no_argument, &readnow_symbol_files, 1},
|
{"readnow", no_argument, &readnow_symbol_files, 1},
|
||||||
@ -40,7 +40,7 @@ Index: gdb-7.4.50.20120703/gdb/main.c
|
|||||||
{"r", no_argument, &readnow_symbol_files, 1},
|
{"r", no_argument, &readnow_symbol_files, 1},
|
||||||
{"quiet", no_argument, &quiet, 1},
|
{"quiet", no_argument, &quiet, 1},
|
||||||
{"q", no_argument, &quiet, 1},
|
{"q", no_argument, &quiet, 1},
|
||||||
@@ -1131,6 +1132,7 @@ Options:\n\n\
|
@@ -1164,6 +1165,7 @@ Options:\n\n\
|
||||||
fputs_unfiltered (_("\
|
fputs_unfiltered (_("\
|
||||||
--quiet Do not print version number on startup.\n\
|
--quiet Do not print version number on startup.\n\
|
||||||
--readnow Fully read symbol files on first access.\n\
|
--readnow Fully read symbol files on first access.\n\
|
||||||
@ -48,31 +48,31 @@ Index: gdb-7.4.50.20120703/gdb/main.c
|
|||||||
"), stream);
|
"), stream);
|
||||||
fputs_unfiltered (_("\
|
fputs_unfiltered (_("\
|
||||||
--se=FILE Use FILE as symbol file and executable file.\n\
|
--se=FILE Use FILE as symbol file and executable file.\n\
|
||||||
Index: gdb-7.4.50.20120703/gdb/symfile.c
|
Index: gdb-7.5.50.20130118/gdb/symfile.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20120703.orig/gdb/symfile.c 2012-07-03 17:30:07.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/symfile.c 2013-01-18 22:58:15.065596598 +0100
|
||||||
+++ gdb-7.4.50.20120703/gdb/symfile.c 2012-07-03 17:31:40.697642447 +0200
|
+++ gdb-7.5.50.20130118/gdb/symfile.c 2013-01-18 22:58:31.249619597 +0100
|
||||||
@@ -81,6 +81,7 @@ static void clear_symtab_users_cleanup (
|
@@ -81,6 +81,7 @@ static void clear_symtab_users_cleanup (
|
||||||
|
|
||||||
/* Global variables owned by this file. */
|
/* Global variables owned by this file. */
|
||||||
int readnow_symbol_files; /* Read full symbols immediately. */
|
int readnow_symbol_files; /* Read full symbols immediately. */
|
||||||
+int readnever_symbol_files; /* Never read full symbols. */
|
+int readnever_symbol_files; /* Never read full symbols. */
|
||||||
|
|
||||||
/* External variables and functions referenced. */
|
/* Functions this file defines. */
|
||||||
|
|
||||||
Index: gdb-7.4.50.20120703/gdb/dwarf2read.c
|
Index: gdb-7.5.50.20130118/gdb/dwarf2read.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20120703.orig/gdb/dwarf2read.c 2012-07-03 17:30:07.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/dwarf2read.c 2013-01-18 22:54:22.528155545 +0100
|
||||||
+++ gdb-7.4.50.20120703/gdb/dwarf2read.c 2012-07-03 17:31:53.421627153 +0200
|
+++ gdb-7.5.50.20130118/gdb/dwarf2read.c 2013-01-18 22:59:08.940674035 +0100
|
||||||
@@ -65,6 +65,7 @@
|
@@ -67,6 +67,7 @@
|
||||||
#include "gdb/gdb-index.h"
|
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include "gdb_bfd.h"
|
#include "gdb_bfd.h"
|
||||||
|
#include "f-lang.h"
|
||||||
+#include "top.h"
|
+#include "top.h"
|
||||||
|
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include "gdb_string.h"
|
#include "gdb_string.h"
|
||||||
@@ -1587,8 +1588,9 @@ dwarf2_has_info (struct objfile *objfile
|
@@ -1782,8 +1783,9 @@ dwarf2_has_info (struct objfile *objfile
|
||||||
(void *) names);
|
(void *) names);
|
||||||
dwarf2_per_objfile->objfile = objfile;
|
dwarf2_per_objfile->objfile = objfile;
|
||||||
}
|
}
|
||||||
@ -84,11 +84,11 @@ Index: gdb-7.4.50.20120703/gdb/dwarf2read.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* When loading sections, we look either for uncompressed section or for
|
/* When loading sections, we look either for uncompressed section or for
|
||||||
Index: gdb-7.4.50.20120703/gdb/top.h
|
Index: gdb-7.5.50.20130118/gdb/top.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20120703.orig/gdb/top.h 2012-01-23 18:12:30.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/top.h 2013-01-18 22:54:22.528155545 +0100
|
||||||
+++ gdb-7.4.50.20120703/gdb/top.h 2012-07-03 17:31:40.700642444 +0200
|
+++ gdb-7.5.50.20130118/gdb/top.h 2013-01-18 22:58:15.069596657 +0100
|
||||||
@@ -60,6 +60,7 @@ extern void set_prompt (const char *s);
|
@@ -58,6 +58,7 @@ extern void set_prompt (const char *s);
|
||||||
|
|
||||||
/* From random places. */
|
/* From random places. */
|
||||||
extern int readnow_symbol_files;
|
extern int readnow_symbol_files;
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=218379
|
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=218379
|
||||||
|
|
||||||
|
|
||||||
Index: gdb-7.2.50.20110117/gdb/symtab.c
|
Index: gdb-7.5.50.20130118/gdb/symtab.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.2.50.20110117.orig/gdb/symtab.c 2011-01-17 15:47:37.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/symtab.c 2013-01-18 23:53:22.009797788 +0100
|
||||||
+++ gdb-7.2.50.20110117/gdb/symtab.c 2011-01-17 15:51:48.000000000 +0100
|
+++ gdb-7.5.50.20130118/gdb/symtab.c 2013-01-18 23:53:51.044846777 +0100
|
||||||
@@ -2015,6 +2015,13 @@ find_pc_sect_line (CORE_ADDR pc, struct
|
@@ -2356,6 +2356,13 @@ find_pc_sect_line (CORE_ADDR pc, struct
|
||||||
SYMBOL_LINKAGE_NAME (msymbol)); */
|
SYMBOL_LINKAGE_NAME (msymbol)); */
|
||||||
;
|
;
|
||||||
/* fall through */
|
/* fall through */
|
||||||
@ -14,7 +14,7 @@ Index: gdb-7.2.50.20110117/gdb/symtab.c
|
|||||||
+ Avoid `find_pc_sect_line'<->`find_pc_line' infinite loop.
|
+ Avoid `find_pc_sect_line'<->`find_pc_line' infinite loop.
|
||||||
+ Red Hat Bug 218379. */
|
+ Red Hat Bug 218379. */
|
||||||
+ else if (SYMBOL_VALUE (mfunsym) == pc)
|
+ else if (SYMBOL_VALUE (mfunsym) == pc)
|
||||||
+ warning ("In stub for %s (0x%s); interlocked, please submit the binary to http://bugzilla.redhat.com", SYMBOL_LINKAGE_NAME (msymbol), paddress (target_gdbarch, pc));
|
+ warning ("In stub for %s (0x%s); interlocked, please submit the binary to http://bugzilla.redhat.com", SYMBOL_LINKAGE_NAME (msymbol), paddress (target_gdbarch (), pc));
|
||||||
+ /* fall through */
|
+ /* fall through */
|
||||||
else
|
else
|
||||||
return find_pc_line (SYMBOL_VALUE_ADDRESS (mfunsym), 0);
|
return find_pc_line (SYMBOL_VALUE_ADDRESS (mfunsym), 0);
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
Index: gdb-7.4.50.20120703/gdb/infrun.c
|
Index: gdb-7.5.50.20130118/gdb/infrun.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20120703.orig/gdb/infrun.c 2012-07-03 20:26:25.060940765 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/infrun.c 2013-01-19 20:56:34.142917416 +0100
|
||||||
+++ gdb-7.4.50.20120703/gdb/infrun.c 2012-07-03 20:26:32.808929860 +0200
|
+++ gdb-7.5.50.20130118/gdb/infrun.c 2013-01-19 20:56:34.662918474 +0100
|
||||||
@@ -1591,7 +1591,7 @@ static const char *const scheduler_enums
|
@@ -1628,7 +1628,7 @@ static const char *const scheduler_enums
|
||||||
schedlock_step,
|
schedlock_step,
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
@ -11,11 +11,46 @@ Index: gdb-7.4.50.20120703/gdb/infrun.c
|
|||||||
static void
|
static void
|
||||||
show_scheduler_mode (struct ui_file *file, int from_tty,
|
show_scheduler_mode (struct ui_file *file, int from_tty,
|
||||||
struct cmd_list_element *c, const char *value)
|
struct cmd_list_element *c, const char *value)
|
||||||
Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.mi/mi-console.exp
|
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.mi/mi-cli.exp
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20120703.orig/gdb/testsuite/gdb.mi/mi-console.exp 2012-07-03 20:26:25.060940765 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.mi/mi-cli.exp 2013-01-01 07:41:24.000000000 +0100
|
||||||
+++ gdb-7.4.50.20120703/gdb/testsuite/gdb.mi/mi-console.exp 2012-07-03 20:26:32.809929858 +0200
|
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.mi/mi-cli.exp 2013-01-19 20:56:34.662918474 +0100
|
||||||
@@ -46,6 +46,9 @@ if { [gdb_compile "${srcdir}/${subdir}/
|
@@ -163,7 +163,7 @@ mi_execute_to "exec-continue" "breakpoin
|
||||||
|
# Test that the token is output even for CLI commands
|
||||||
|
# Also test that *stopped includes frame information.
|
||||||
|
mi_gdb_test "34 next" \
|
||||||
|
- ".*34\\\^running.*\\*running,thread-id=\"all\"" \
|
||||||
|
+ ".*34\\\^running.*\\*running,thread-id=\"1\"" \
|
||||||
|
"34 next: run"
|
||||||
|
|
||||||
|
if {!$async} {
|
||||||
|
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.mi/mi-logging.exp
|
||||||
|
===================================================================
|
||||||
|
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.mi/mi-logging.exp 2013-01-01 07:41:24.000000000 +0100
|
||||||
|
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.mi/mi-logging.exp 2013-01-19 20:56:34.662918474 +0100
|
||||||
|
@@ -53,7 +53,7 @@ close $chan
|
||||||
|
|
||||||
|
set mi_log_prompt "\[(\]gdb\[)\] \[\r\n\]+"
|
||||||
|
|
||||||
|
-if [regexp "\\^done\[\r\n\]+$mi_log_prompt\\^running\[\r\n\]+\\*running,thread-id=\"all\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt\\^running\[\r\n\]+\\*running,thread-id=\"all\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt" $logcontent] {
|
||||||
|
+if [regexp "\\^done\[\r\n\]+$mi_log_prompt\\^running\[\r\n\]+\\*running,thread-id=\"1\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt\\^running\[\r\n\]+\\*running,thread-id=\"1\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt" $logcontent] {
|
||||||
|
pass "Log file contents"
|
||||||
|
} else {
|
||||||
|
fail "Log file contents"
|
||||||
|
@@ -76,7 +76,7 @@ set chan [open $milogfile]
|
||||||
|
set logcontent [read $chan]
|
||||||
|
close $chan
|
||||||
|
|
||||||
|
-if [regexp "1001\\^done\[\r\n\]+$mi_log_prompt.*1002\\^running\[\r\n\]+\\*running,thread-id=\"all\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt.*1003\\^running\[\r\n\]+\\*running,thread-id=\"all\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt" $logcontent] {
|
||||||
|
+if [regexp "1001\\^done\[\r\n\]+$mi_log_prompt.*1002\\^running\[\r\n\]+\\*running,thread-id=\"1\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt.*1003\\^running\[\r\n\]+\\*running,thread-id=\"1\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt" $logcontent] {
|
||||||
|
pass "Redirect log file contents"
|
||||||
|
} else {
|
||||||
|
fail "Redirect log file contents"
|
||||||
|
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.mi/mi-console.exp
|
||||||
|
===================================================================
|
||||||
|
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.mi/mi-console.exp 2013-01-01 07:41:24.000000000 +0100
|
||||||
|
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.mi/mi-console.exp 2013-01-19 20:56:55.783961145 +0100
|
||||||
|
@@ -45,6 +45,9 @@ if { [gdb_compile "${srcdir}/${subdir}/
|
||||||
|
|
||||||
mi_run_to_main
|
mi_run_to_main
|
||||||
|
|
||||||
@ -25,52 +60,3 @@ Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.mi/mi-console.exp
|
|||||||
# Next over the hello() call which will produce lots of output
|
# Next over the hello() call which will produce lots of output
|
||||||
mi_gdb_test "220-exec-next" \
|
mi_gdb_test "220-exec-next" \
|
||||||
"220\\^running(\r\n\\*running,thread-id=\"all\")?" \
|
"220\\^running(\r\n\\*running,thread-id=\"all\")?" \
|
||||||
Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.mi/mi2-console.exp
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.4.50.20120703.orig/gdb/testsuite/gdb.mi/mi2-console.exp 2012-07-03 20:26:25.060940765 +0200
|
|
||||||
+++ gdb-7.4.50.20120703/gdb/testsuite/gdb.mi/mi2-console.exp 2012-07-03 20:26:32.809929858 +0200
|
|
||||||
@@ -46,6 +46,9 @@ if { [gdb_compile "${srcdir}/${subdir}/
|
|
||||||
|
|
||||||
mi_run_to_main
|
|
||||||
|
|
||||||
+# thread-id=\"all\" vs. thread-id=\"1\" below:
|
|
||||||
+mi_gdb_test "210-gdb-set scheduler-locking off" "210\\^done" "set scheduler-locking off"
|
|
||||||
+
|
|
||||||
# Next over the hello() call which will produce lots of output
|
|
||||||
mi_gdb_test "220-exec-next" "220\\^running(\r\n)?(\\*running,thread-id=\"all\")?" \
|
|
||||||
"Started step over hello"
|
|
||||||
Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.mi/mi-cli.exp
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.4.50.20120703.orig/gdb/testsuite/gdb.mi/mi-cli.exp 2012-07-03 20:26:25.060940765 +0200
|
|
||||||
+++ gdb-7.4.50.20120703/gdb/testsuite/gdb.mi/mi-cli.exp 2012-07-03 20:26:32.810929856 +0200
|
|
||||||
@@ -175,7 +175,7 @@ mi_execute_to "exec-continue" "breakpoin
|
|
||||||
# Test that the token is output even for CLI commands
|
|
||||||
# Also test that *stopped includes frame information.
|
|
||||||
mi_gdb_test "34 next" \
|
|
||||||
- ".*34\\\^running.*\\*running,thread-id=\"all\"" \
|
|
||||||
+ ".*34\\\^running.*\\*running,thread-id=\"1\"" \
|
|
||||||
"34 next: run"
|
|
||||||
|
|
||||||
if {!$async} {
|
|
||||||
Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.mi/mi-logging.exp
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.4.50.20120703.orig/gdb/testsuite/gdb.mi/mi-logging.exp 2012-06-29 00:11:23.000000000 +0200
|
|
||||||
+++ gdb-7.4.50.20120703/gdb/testsuite/gdb.mi/mi-logging.exp 2012-07-03 20:29:03.573717651 +0200
|
|
||||||
@@ -56,7 +56,7 @@ close $chan
|
|
||||||
|
|
||||||
set mi_log_prompt "\[(\]gdb\[)\] \[\r\n\]+"
|
|
||||||
|
|
||||||
-if [regexp "\\^done\[\r\n\]+$mi_log_prompt\\^running\[\r\n\]+\\*running,thread-id=\"all\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt\\^running\[\r\n\]+\\*running,thread-id=\"all\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt" $logcontent] {
|
|
||||||
+if [regexp "\\^done\[\r\n\]+$mi_log_prompt\\^running\[\r\n\]+\\*running,thread-id=\"1\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt\\^running\[\r\n\]+\\*running,thread-id=\"1\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt" $logcontent] {
|
|
||||||
pass "Log file contents"
|
|
||||||
} else {
|
|
||||||
fail "Log file contents"
|
|
||||||
@@ -79,7 +79,7 @@ set chan [open $milogfile]
|
|
||||||
set logcontent [read $chan]
|
|
||||||
close $chan
|
|
||||||
|
|
||||||
-if [regexp "1001\\^done\[\r\n\]+$mi_log_prompt.*1002\\^running\[\r\n\]+\\*running,thread-id=\"all\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt.*1003\\^running\[\r\n\]+\\*running,thread-id=\"all\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt" $logcontent] {
|
|
||||||
+if [regexp "1001\\^done\[\r\n\]+$mi_log_prompt.*1002\\^running\[\r\n\]+\\*running,thread-id=\"1\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt.*1003\\^running\[\r\n\]+\\*running,thread-id=\"1\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt" $logcontent] {
|
|
||||||
pass "Redirect log file contents"
|
|
||||||
} else {
|
|
||||||
fail "Redirect log file contents"
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
Index: gdb-7.4.50.20120602/bfd/elf-bfd.h
|
Index: gdb-7.5.50.20130118/bfd/elf-bfd.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20120602.orig/bfd/elf-bfd.h 2012-06-02 21:26:09.928717069 +0200
|
--- gdb-7.5.50.20130118.orig/bfd/elf-bfd.h 2013-01-18 23:02:54.809004473 +0100
|
||||||
+++ gdb-7.4.50.20120602/bfd/elf-bfd.h 2012-06-02 21:27:21.727689625 +0200
|
+++ gdb-7.5.50.20130118/bfd/elf-bfd.h 2013-01-18 23:02:59.316010755 +0100
|
||||||
@@ -2221,8 +2221,10 @@ extern Elf_Internal_Phdr * _bfd_elf_find
|
@@ -2242,8 +2242,10 @@ extern Elf_Internal_Phdr * _bfd_elf_find
|
||||||
/* Exported interface for writing elf corefile notes. */
|
/* Exported interface for writing elf corefile notes. */
|
||||||
extern char *elfcore_write_note
|
extern char *elfcore_write_note
|
||||||
(bfd *, char *, int *, const char *, int, const void *, int);
|
(bfd *, char *, int *, const char *, int, const void *, int);
|
||||||
@ -14,11 +14,11 @@ Index: gdb-7.4.50.20120602/bfd/elf-bfd.h
|
|||||||
extern char *elfcore_write_prstatus
|
extern char *elfcore_write_prstatus
|
||||||
(bfd *, char *, int *, long, int, const void *);
|
(bfd *, char *, int *, long, int, const void *);
|
||||||
extern char * elfcore_write_pstatus
|
extern char * elfcore_write_pstatus
|
||||||
Index: gdb-7.4.50.20120602/bfd/elf.c
|
Index: gdb-7.5.50.20130118/bfd/elf.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20120602.orig/bfd/elf.c 2012-06-02 21:26:09.928717069 +0200
|
--- gdb-7.5.50.20130118.orig/bfd/elf.c 2013-01-18 23:02:54.812004479 +0100
|
||||||
+++ gdb-7.4.50.20120602/bfd/elf.c 2012-06-02 21:27:21.732689623 +0200
|
+++ gdb-7.5.50.20130118/bfd/elf.c 2013-01-18 23:02:59.319010836 +0100
|
||||||
@@ -8917,56 +8917,61 @@ char *
|
@@ -9103,56 +9103,61 @@ char *
|
||||||
elfcore_write_prpsinfo (bfd *abfd,
|
elfcore_write_prpsinfo (bfd *abfd,
|
||||||
char *buf,
|
char *buf,
|
||||||
int *bufsiz,
|
int *bufsiz,
|
||||||
@ -103,11 +103,11 @@ Index: gdb-7.4.50.20120602/bfd/elf.c
|
|||||||
|
|
||||||
free (buf);
|
free (buf);
|
||||||
return NULL;
|
return NULL;
|
||||||
Index: gdb-7.4.50.20120602/gdb/procfs.c
|
Index: gdb-7.5.50.20130118/gdb/procfs.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20120602.orig/gdb/procfs.c 2012-06-02 21:26:09.928717069 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/procfs.c 2013-01-18 23:02:54.815004487 +0100
|
||||||
+++ gdb-7.4.50.20120602/gdb/procfs.c 2012-06-02 21:27:21.745689618 +0200
|
+++ gdb-7.5.50.20130118/gdb/procfs.c 2013-01-18 23:02:59.320010861 +0100
|
||||||
@@ -5541,6 +5541,7 @@ procfs_make_note_section (bfd *obfd, int
|
@@ -5502,6 +5502,7 @@ procfs_make_note_section (bfd *obfd, int
|
||||||
note_data = (char *) elfcore_write_prpsinfo (obfd,
|
note_data = (char *) elfcore_write_prpsinfo (obfd,
|
||||||
note_data,
|
note_data,
|
||||||
note_size,
|
note_size,
|
||||||
@ -115,19 +115,19 @@ Index: gdb-7.4.50.20120602/gdb/procfs.c
|
|||||||
fname,
|
fname,
|
||||||
psargs);
|
psargs);
|
||||||
|
|
||||||
Index: gdb-7.4.50.20120602/gdb/linux-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/linux-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20120602.orig/gdb/linux-tdep.c 2012-06-02 21:26:09.928717069 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/linux-tdep.c 2013-01-18 23:02:54.816004489 +0100
|
||||||
+++ gdb-7.4.50.20120602/gdb/linux-tdep.c 2012-06-02 21:31:12.051601510 +0200
|
+++ gdb-7.5.50.20130118/gdb/linux-tdep.c 2013-01-18 23:03:10.727027317 +0100
|
||||||
@@ -30,6 +30,7 @@
|
@@ -32,6 +32,7 @@
|
||||||
#include "elf-bfd.h" /* for elfcore_write_* */
|
|
||||||
#include "inferior.h"
|
|
||||||
#include "cli/cli-utils.h"
|
#include "cli/cli-utils.h"
|
||||||
|
#include "arch-utils.h"
|
||||||
|
#include "gdb_obstack.h"
|
||||||
+#include <sys/procfs.h>
|
+#include <sys/procfs.h>
|
||||||
|
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
|
||||||
@@ -769,6 +770,131 @@ linux_corefile_thread_callback (struct t
|
@@ -1153,6 +1154,131 @@ linux_corefile_thread_callback (struct t
|
||||||
return !args->note_data;
|
return !args->note_data;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -259,7 +259,7 @@ Index: gdb-7.4.50.20120602/gdb/linux-tdep.c
|
|||||||
/* Fills the "to_make_corefile_note" target vector. Builds the note
|
/* Fills the "to_make_corefile_note" target vector. Builds the note
|
||||||
section for a corefile, and returns it in a malloc buffer. */
|
section for a corefile, and returns it in a malloc buffer. */
|
||||||
|
|
||||||
@@ -784,16 +910,9 @@ linux_make_corefile_notes (struct gdbarc
|
@@ -1168,16 +1294,9 @@ linux_make_corefile_notes (struct gdbarc
|
||||||
/* Process information. */
|
/* Process information. */
|
||||||
if (get_exec_file (0))
|
if (get_exec_file (0))
|
||||||
{
|
{
|
||||||
|
@ -1,72 +0,0 @@
|
|||||||
We may abort the process of detaching threads with multiple SIGINTs - which are
|
|
||||||
being sent during a testcase terminating its child GDB.
|
|
||||||
|
|
||||||
Some of the threads may not be properly PTRACE_DETACHed which hurts if they
|
|
||||||
should have been detached with SIGSTOP (as they are accidentally left running
|
|
||||||
on the debugger termination).
|
|
||||||
|
|
||||||
Index: gdb-7.2.50.20110117/gdb/defs.h
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.2.50.20110117.orig/gdb/defs.h 2011-01-17 15:47:37.000000000 +0100
|
|
||||||
+++ gdb-7.2.50.20110117/gdb/defs.h 2011-01-17 15:53:05.000000000 +0100
|
|
||||||
@@ -165,6 +165,7 @@ extern char *python_libdir;
|
|
||||||
extern char *debug_file_directory;
|
|
||||||
|
|
||||||
extern int quit_flag;
|
|
||||||
+extern int quit_flag_cleanup;
|
|
||||||
extern int immediate_quit;
|
|
||||||
extern int sevenbit_strings;
|
|
||||||
|
|
||||||
@@ -178,7 +179,7 @@ extern void quit (void);
|
|
||||||
needed. */
|
|
||||||
|
|
||||||
#define QUIT { \
|
|
||||||
- if (quit_flag) quit (); \
|
|
||||||
+ if (quit_flag && !quit_flag_cleanup) quit (); \
|
|
||||||
if (deprecated_interactive_hook) deprecated_interactive_hook (); \
|
|
||||||
}
|
|
||||||
|
|
||||||
Index: gdb-7.2.50.20110117/gdb/event-top.c
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.2.50.20110117.orig/gdb/event-top.c 2011-01-17 15:52:39.000000000 +0100
|
|
||||||
+++ gdb-7.2.50.20110117/gdb/event-top.c 2011-01-17 15:52:49.000000000 +0100
|
|
||||||
@@ -904,7 +904,7 @@ async_request_quit (gdb_client_data arg)
|
|
||||||
is no reason to call quit again here, unless immediate_quit is
|
|
||||||
set. */
|
|
||||||
|
|
||||||
- if (quit_flag || immediate_quit)
|
|
||||||
+ if ((quit_flag || immediate_quit) && !quit_flag_cleanup)
|
|
||||||
quit ();
|
|
||||||
}
|
|
||||||
|
|
||||||
Index: gdb-7.2.50.20110117/gdb/top.c
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.2.50.20110117.orig/gdb/top.c 2011-01-17 15:47:37.000000000 +0100
|
|
||||||
+++ gdb-7.2.50.20110117/gdb/top.c 2011-01-17 15:52:49.000000000 +0100
|
|
||||||
@@ -1257,7 +1257,9 @@ quit_force (char *args, int from_tty)
|
|
||||||
qt.args = args;
|
|
||||||
qt.from_tty = from_tty;
|
|
||||||
|
|
||||||
- /* We want to handle any quit errors and exit regardless. */
|
|
||||||
+ /* We want to handle any quit errors and exit regardless but we should never
|
|
||||||
+ get user-interrupted to properly detach the inferior. */
|
|
||||||
+ quit_flag_cleanup = 1;
|
|
||||||
catch_errors (quit_target, &qt,
|
|
||||||
"Quitting: ", RETURN_MASK_ALL);
|
|
||||||
|
|
||||||
Index: gdb-7.2.50.20110117/gdb/utils.c
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.2.50.20110117.orig/gdb/utils.c 2011-01-17 15:47:37.000000000 +0100
|
|
||||||
+++ gdb-7.2.50.20110117/gdb/utils.c 2011-01-17 15:52:49.000000000 +0100
|
|
||||||
@@ -121,6 +121,11 @@ int job_control;
|
|
||||||
|
|
||||||
int quit_flag;
|
|
||||||
|
|
||||||
+/* Nonzero means we are already processing the quitting cleanups and we should
|
|
||||||
+ no longer get aborted. */
|
|
||||||
+
|
|
||||||
+int quit_flag_cleanup;
|
|
||||||
+
|
|
||||||
/* Nonzero means quit immediately if Control-C is typed now, rather
|
|
||||||
than waiting until QUIT is executed. Be careful in setting this;
|
|
||||||
code which executes with immediate_quit set has to be very careful
|
|
@ -1,8 +1,8 @@
|
|||||||
Index: gdb-7.4.50.20120703/gdb/gdb_bfd.c
|
Index: gdb-7.5.50.20130118/gdb/gdb_bfd.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20120703.orig/gdb/gdb_bfd.c 2012-07-03 17:30:07.356754655 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/gdb_bfd.c 2013-01-18 23:11:18.158718709 +0100
|
||||||
+++ gdb-7.4.50.20120703/gdb/gdb_bfd.c 2012-07-03 17:43:52.565762454 +0200
|
+++ gdb-7.5.50.20130118/gdb/gdb_bfd.c 2013-01-18 23:12:06.841787893 +0100
|
||||||
@@ -26,12 +26,14 @@
|
@@ -27,12 +27,14 @@
|
||||||
#ifdef HAVE_ZLIB_H
|
#ifdef HAVE_ZLIB_H
|
||||||
#include <zlib.h>
|
#include <zlib.h>
|
||||||
#endif
|
#endif
|
||||||
@ -17,7 +17,7 @@ Index: gdb-7.4.50.20120703/gdb/gdb_bfd.c
|
|||||||
|
|
||||||
/* An object of this type is stored in the section's user data when
|
/* An object of this type is stored in the section's user data when
|
||||||
mapping a section. */
|
mapping a section. */
|
||||||
@@ -181,6 +183,7 @@ free_one_bfd_section (bfd *abfd, asectio
|
@@ -205,6 +207,7 @@ free_one_bfd_section (bfd *abfd, asectio
|
||||||
|
|
||||||
if (sect != NULL && sect->data != NULL)
|
if (sect != NULL && sect->data != NULL)
|
||||||
{
|
{
|
||||||
@ -25,7 +25,7 @@ Index: gdb-7.4.50.20120703/gdb/gdb_bfd.c
|
|||||||
#ifdef HAVE_MMAP
|
#ifdef HAVE_MMAP
|
||||||
if (sect->map_addr != NULL)
|
if (sect->map_addr != NULL)
|
||||||
{
|
{
|
||||||
@@ -191,6 +194,7 @@ free_one_bfd_section (bfd *abfd, asectio
|
@@ -215,6 +218,7 @@ free_one_bfd_section (bfd *abfd, asectio
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
@ -33,19 +33,19 @@ Index: gdb-7.4.50.20120703/gdb/gdb_bfd.c
|
|||||||
xfree (sect->data);
|
xfree (sect->data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -425,6 +429,7 @@ gdb_bfd_map_section (asection *sectp, bf
|
@@ -360,6 +364,7 @@ gdb_bfd_map_section (asection *sectp, bf
|
||||||
}
|
if (descriptor->data != NULL)
|
||||||
}
|
goto done;
|
||||||
|
|
||||||
+#ifndef __sparc__
|
+#ifndef __sparc__
|
||||||
#ifdef HAVE_MMAP
|
#ifdef HAVE_MMAP
|
||||||
|
if (!bfd_is_section_compressed (abfd, sectp))
|
||||||
{
|
{
|
||||||
/* The page size, used when mmapping. */
|
@@ -394,6 +399,7 @@ gdb_bfd_map_section (asection *sectp, bf
|
||||||
@@ -458,6 +463,7 @@ gdb_bfd_map_section (asection *sectp, bf
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif /* HAVE_MMAP */
|
#endif /* HAVE_MMAP */
|
||||||
+#endif
|
+#endif
|
||||||
|
|
||||||
/* If we get here, we are a normal, not-compressed section. */
|
/* Handle compressed sections, or ordinary uncompressed sections in
|
||||||
|
the no-mmap case. */
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
Index: gdb-7.4.50.20120602/gdb/breakpoint.c
|
Index: gdb-7.5.50.20130118/gdb/breakpoint.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20120602.orig/gdb/breakpoint.c 2012-06-02 19:11:54.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/breakpoint.c 2013-01-18 23:09:53.727597584 +0100
|
||||||
+++ gdb-7.4.50.20120602/gdb/breakpoint.c 2012-06-02 19:52:58.161226506 +0200
|
+++ gdb-7.5.50.20130118/gdb/breakpoint.c 2013-01-18 23:10:20.158635065 +0100
|
||||||
@@ -15495,6 +15495,50 @@ initialize_breakpoint_ops (void)
|
@@ -15993,6 +15993,50 @@ initialize_breakpoint_ops (void)
|
||||||
}
|
static struct cmd_list_element *enablebreaklist = NULL;
|
||||||
|
|
||||||
void
|
void
|
||||||
+breakpoints_relocate (struct objfile *objfile, struct section_offsets *delta)
|
+breakpoints_relocate (struct objfile *objfile, struct section_offsets *delta)
|
||||||
@ -53,11 +53,11 @@ Index: gdb-7.4.50.20120602/gdb/breakpoint.c
|
|||||||
_initialize_breakpoint (void)
|
_initialize_breakpoint (void)
|
||||||
{
|
{
|
||||||
struct cmd_list_element *c;
|
struct cmd_list_element *c;
|
||||||
Index: gdb-7.4.50.20120602/gdb/breakpoint.h
|
Index: gdb-7.5.50.20130118/gdb/breakpoint.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20120602.orig/gdb/breakpoint.h 2012-05-16 16:35:03.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/breakpoint.h 2013-01-18 23:09:51.671594585 +0100
|
||||||
+++ gdb-7.4.50.20120602/gdb/breakpoint.h 2012-06-02 19:53:09.268223263 +0200
|
+++ gdb-7.5.50.20130118/gdb/breakpoint.h 2013-01-18 23:09:53.728597586 +0100
|
||||||
@@ -1503,4 +1503,7 @@ extern struct gdbarch *get_sal_arch (str
|
@@ -1550,4 +1550,7 @@ extern struct gdbarch *get_sal_arch (str
|
||||||
|
|
||||||
extern void handle_solib_event (void);
|
extern void handle_solib_event (void);
|
||||||
|
|
||||||
@ -65,11 +65,11 @@ Index: gdb-7.4.50.20120602/gdb/breakpoint.h
|
|||||||
+ struct section_offsets *delta);
|
+ struct section_offsets *delta);
|
||||||
+
|
+
|
||||||
#endif /* !defined (BREAKPOINT_H) */
|
#endif /* !defined (BREAKPOINT_H) */
|
||||||
Index: gdb-7.4.50.20120602/gdb/objfiles.c
|
Index: gdb-7.5.50.20130118/gdb/objfiles.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20120602.orig/gdb/objfiles.c 2012-05-10 21:50:08.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/objfiles.c 2013-01-18 23:09:51.671594585 +0100
|
||||||
+++ gdb-7.4.50.20120602/gdb/objfiles.c 2012-06-02 19:52:58.202226502 +0200
|
+++ gdb-7.5.50.20130118/gdb/objfiles.c 2013-01-18 23:09:53.729597588 +0100
|
||||||
@@ -802,6 +802,11 @@ objfile_relocate1 (struct objfile *objfi
|
@@ -826,6 +826,11 @@ objfile_relocate1 (struct objfile *objfi
|
||||||
objfile->sf->sym_probe_fns->sym_relocate_probe (objfile,
|
objfile->sf->sym_probe_fns->sym_relocate_probe (objfile,
|
||||||
new_offsets, delta);
|
new_offsets, delta);
|
||||||
|
|
||||||
|
@ -1,61 +1,8 @@
|
|||||||
Index: gdb-7.4.50.20120602/gdb/dwarf2read.c
|
Index: gdb-7.5.50.20130118/gdb/gdbtypes.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20120602.orig/gdb/dwarf2read.c 2012-06-02 19:14:38.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/gdbtypes.h 2013-01-18 23:07:03.488358315 +0100
|
||||||
+++ gdb-7.4.50.20120602/gdb/dwarf2read.c 2012-06-02 19:51:29.977252338 +0200
|
+++ gdb-7.5.50.20130118/gdb/gdbtypes.h 2013-01-18 23:08:10.286451570 +0100
|
||||||
@@ -9746,7 +9746,12 @@ read_common_block (struct die_info *die,
|
@@ -420,6 +420,7 @@ enum field_loc_kind
|
||||||
{
|
|
||||||
struct attribute *attr;
|
|
||||||
struct symbol *sym;
|
|
||||||
- CORE_ADDR base = (CORE_ADDR) 0;
|
|
||||||
+ struct objfile *objfile = cu->objfile;
|
|
||||||
+ CORE_ADDR baseaddr = ANOFFSET (objfile->section_offsets,
|
|
||||||
+ SECT_OFF_TEXT (objfile));
|
|
||||||
+ /* This is used only for DW_AT_data_member_location entries. */
|
|
||||||
+ CORE_ADDR base = 0;
|
|
||||||
+ int base_p = 0;
|
|
||||||
|
|
||||||
attr = dwarf2_attr (die, DW_AT_location, cu);
|
|
||||||
if (attr)
|
|
||||||
@@ -9755,6 +9760,7 @@ read_common_block (struct die_info *die,
|
|
||||||
if (attr_form_is_block (attr))
|
|
||||||
{
|
|
||||||
base = decode_locdesc (DW_BLOCK (attr), cu);
|
|
||||||
+ base_p = 1;
|
|
||||||
}
|
|
||||||
else if (attr_form_is_section_offset (attr))
|
|
||||||
{
|
|
||||||
@@ -9807,12 +9813,15 @@ read_common_block (struct die_info *die,
|
|
||||||
if (sym != NULL
|
|
||||||
&& handle_data_member_location (child_die, cu, &offset))
|
|
||||||
{
|
|
||||||
- SYMBOL_VALUE_ADDRESS (sym) = base + offset;
|
|
||||||
+ if (!base_p)
|
|
||||||
+ dwarf2_invalid_attrib_class_complaint
|
|
||||||
+ ("DW_AT_data_member_location", "common block member");
|
|
||||||
+ SYMBOL_VALUE_ADDRESS (sym) = base + offset + baseaddr;
|
|
||||||
add_symbol_to_list (sym, &global_symbols);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (SYMBOL_CLASS (sym) == LOC_STATIC)
|
|
||||||
- SET_FIELD_PHYSADDR (*field, SYMBOL_VALUE_ADDRESS (sym));
|
|
||||||
+ SET_FIELD_PHYSADDR (*field, SYMBOL_VALUE_ADDRESS (sym) - baseaddr);
|
|
||||||
else
|
|
||||||
SET_FIELD_PHYSNAME (*field, SYMBOL_LINKAGE_NAME (sym));
|
|
||||||
FIELD_TYPE (*field) = SYMBOL_TYPE (sym);
|
|
||||||
@@ -9826,7 +9835,7 @@ read_common_block (struct die_info *die,
|
|
||||||
|
|
||||||
sym = new_symbol (die, type, cu);
|
|
||||||
/* SYMBOL_VALUE_ADDRESS never gets used as all its fields are static. */
|
|
||||||
- SYMBOL_VALUE_ADDRESS (sym) = base;
|
|
||||||
+ SYMBOL_VALUE_ADDRESS (sym) = base + baseaddr;
|
|
||||||
|
|
||||||
set_die_type (die, type, cu);
|
|
||||||
}
|
|
||||||
Index: gdb-7.4.50.20120602/gdb/gdbtypes.h
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.4.50.20120602.orig/gdb/gdbtypes.h 2012-06-02 19:11:54.000000000 +0200
|
|
||||||
+++ gdb-7.4.50.20120602/gdb/gdbtypes.h 2012-06-02 19:52:44.990230200 +0200
|
|
||||||
@@ -401,6 +401,7 @@ enum field_loc_kind
|
|
||||||
{
|
{
|
||||||
FIELD_LOC_KIND_BITPOS, /* bitpos */
|
FIELD_LOC_KIND_BITPOS, /* bitpos */
|
||||||
FIELD_LOC_KIND_ENUMVAL, /* enumval */
|
FIELD_LOC_KIND_ENUMVAL, /* enumval */
|
||||||
@ -63,7 +10,7 @@ Index: gdb-7.4.50.20120602/gdb/gdbtypes.h
|
|||||||
FIELD_LOC_KIND_PHYSADDR, /* physaddr */
|
FIELD_LOC_KIND_PHYSADDR, /* physaddr */
|
||||||
FIELD_LOC_KIND_PHYSNAME, /* physname */
|
FIELD_LOC_KIND_PHYSNAME, /* physname */
|
||||||
FIELD_LOC_KIND_DWARF_BLOCK /* dwarf_block */
|
FIELD_LOC_KIND_DWARF_BLOCK /* dwarf_block */
|
||||||
@@ -595,6 +596,7 @@ struct main_type
|
@@ -614,6 +615,7 @@ struct main_type
|
||||||
is the location (in the target) of the static field.
|
is the location (in the target) of the static field.
|
||||||
Otherwise, physname is the mangled label of the static field. */
|
Otherwise, physname is the mangled label of the static field. */
|
||||||
|
|
||||||
@ -71,7 +18,7 @@ Index: gdb-7.4.50.20120602/gdb/gdbtypes.h
|
|||||||
CORE_ADDR physaddr;
|
CORE_ADDR physaddr;
|
||||||
const char *physname;
|
const char *physname;
|
||||||
|
|
||||||
@@ -1200,6 +1202,7 @@ extern void allocate_gnat_aux_type (stru
|
@@ -1237,6 +1239,7 @@ extern void allocate_gnat_aux_type (stru
|
||||||
#define FIELD_ENUMVAL_LVAL(thisfld) ((thisfld).loc.enumval)
|
#define FIELD_ENUMVAL_LVAL(thisfld) ((thisfld).loc.enumval)
|
||||||
#define FIELD_ENUMVAL(thisfld) (FIELD_ENUMVAL_LVAL (thisfld) + 0)
|
#define FIELD_ENUMVAL(thisfld) (FIELD_ENUMVAL_LVAL (thisfld) + 0)
|
||||||
#define FIELD_STATIC_PHYSNAME(thisfld) ((thisfld).loc.physname)
|
#define FIELD_STATIC_PHYSNAME(thisfld) ((thisfld).loc.physname)
|
||||||
@ -79,7 +26,7 @@ Index: gdb-7.4.50.20120602/gdb/gdbtypes.h
|
|||||||
#define FIELD_STATIC_PHYSADDR(thisfld) ((thisfld).loc.physaddr)
|
#define FIELD_STATIC_PHYSADDR(thisfld) ((thisfld).loc.physaddr)
|
||||||
#define FIELD_DWARF_BLOCK(thisfld) ((thisfld).loc.dwarf_block)
|
#define FIELD_DWARF_BLOCK(thisfld) ((thisfld).loc.dwarf_block)
|
||||||
#define SET_FIELD_BITPOS(thisfld, bitpos) \
|
#define SET_FIELD_BITPOS(thisfld, bitpos) \
|
||||||
@@ -1211,6 +1214,7 @@ extern void allocate_gnat_aux_type (stru
|
@@ -1248,6 +1251,7 @@ extern void allocate_gnat_aux_type (stru
|
||||||
#define SET_FIELD_PHYSNAME(thisfld, name) \
|
#define SET_FIELD_PHYSNAME(thisfld, name) \
|
||||||
(FIELD_LOC_KIND (thisfld) = FIELD_LOC_KIND_PHYSNAME, \
|
(FIELD_LOC_KIND (thisfld) = FIELD_LOC_KIND_PHYSNAME, \
|
||||||
FIELD_STATIC_PHYSNAME (thisfld) = (name))
|
FIELD_STATIC_PHYSNAME (thisfld) = (name))
|
||||||
@ -87,7 +34,7 @@ Index: gdb-7.4.50.20120602/gdb/gdbtypes.h
|
|||||||
#define SET_FIELD_PHYSADDR(thisfld, addr) \
|
#define SET_FIELD_PHYSADDR(thisfld, addr) \
|
||||||
(FIELD_LOC_KIND (thisfld) = FIELD_LOC_KIND_PHYSADDR, \
|
(FIELD_LOC_KIND (thisfld) = FIELD_LOC_KIND_PHYSADDR, \
|
||||||
FIELD_STATIC_PHYSADDR (thisfld) = (addr))
|
FIELD_STATIC_PHYSADDR (thisfld) = (addr))
|
||||||
@@ -1227,6 +1231,7 @@ extern void allocate_gnat_aux_type (stru
|
@@ -1264,6 +1268,7 @@ extern void allocate_gnat_aux_type (stru
|
||||||
#define TYPE_FIELD_BITPOS(thistype, n) FIELD_BITPOS (TYPE_FIELD (thistype, n))
|
#define TYPE_FIELD_BITPOS(thistype, n) FIELD_BITPOS (TYPE_FIELD (thistype, n))
|
||||||
#define TYPE_FIELD_ENUMVAL(thistype, n) FIELD_ENUMVAL (TYPE_FIELD (thistype, n))
|
#define TYPE_FIELD_ENUMVAL(thistype, n) FIELD_ENUMVAL (TYPE_FIELD (thistype, n))
|
||||||
#define TYPE_FIELD_STATIC_PHYSNAME(thistype, n) FIELD_STATIC_PHYSNAME (TYPE_FIELD (thistype, n))
|
#define TYPE_FIELD_STATIC_PHYSNAME(thistype, n) FIELD_STATIC_PHYSNAME (TYPE_FIELD (thistype, n))
|
||||||
@ -95,11 +42,11 @@ Index: gdb-7.4.50.20120602/gdb/gdbtypes.h
|
|||||||
#define TYPE_FIELD_STATIC_PHYSADDR(thistype, n) FIELD_STATIC_PHYSADDR (TYPE_FIELD (thistype, n))
|
#define TYPE_FIELD_STATIC_PHYSADDR(thistype, n) FIELD_STATIC_PHYSADDR (TYPE_FIELD (thistype, n))
|
||||||
#define TYPE_FIELD_DWARF_BLOCK(thistype, n) FIELD_DWARF_BLOCK (TYPE_FIELD (thistype, n))
|
#define TYPE_FIELD_DWARF_BLOCK(thistype, n) FIELD_DWARF_BLOCK (TYPE_FIELD (thistype, n))
|
||||||
#define TYPE_FIELD_ARTIFICIAL(thistype, n) FIELD_ARTIFICIAL(TYPE_FIELD(thistype,n))
|
#define TYPE_FIELD_ARTIFICIAL(thistype, n) FIELD_ARTIFICIAL(TYPE_FIELD(thistype,n))
|
||||||
Index: gdb-7.4.50.20120602/gdb/jv-lang.c
|
Index: gdb-7.5.50.20130118/gdb/jv-lang.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20120602.orig/gdb/jv-lang.c 2012-05-10 21:59:12.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/jv-lang.c 2013-01-18 23:07:03.488358315 +0100
|
||||||
+++ gdb-7.4.50.20120602/gdb/jv-lang.c 2012-06-02 19:51:53.286245280 +0200
|
+++ gdb-7.5.50.20130118/gdb/jv-lang.c 2013-01-18 23:08:10.286451570 +0100
|
||||||
@@ -431,7 +431,8 @@ java_link_class_type (struct gdbarch *gd
|
@@ -430,7 +430,8 @@ java_link_class_type (struct gdbarch *gd
|
||||||
|
|
||||||
fields = NULL;
|
fields = NULL;
|
||||||
nfields--; /* First set up dummy "class" field. */
|
nfields--; /* First set up dummy "class" field. */
|
||||||
@ -109,7 +56,7 @@ Index: gdb-7.4.50.20120602/gdb/jv-lang.c
|
|||||||
TYPE_FIELD_NAME (type, nfields) = "class";
|
TYPE_FIELD_NAME (type, nfields) = "class";
|
||||||
TYPE_FIELD_TYPE (type, nfields) = value_type (clas);
|
TYPE_FIELD_TYPE (type, nfields) = value_type (clas);
|
||||||
SET_TYPE_FIELD_PRIVATE (type, nfields);
|
SET_TYPE_FIELD_PRIVATE (type, nfields);
|
||||||
@@ -479,7 +480,8 @@ java_link_class_type (struct gdbarch *gd
|
@@ -478,7 +479,8 @@ java_link_class_type (struct gdbarch *gd
|
||||||
SET_TYPE_FIELD_PROTECTED (type, i);
|
SET_TYPE_FIELD_PROTECTED (type, i);
|
||||||
}
|
}
|
||||||
if (accflags & 0x0008) /* ACC_STATIC */
|
if (accflags & 0x0008) /* ACC_STATIC */
|
||||||
@ -119,11 +66,11 @@ Index: gdb-7.4.50.20120602/gdb/jv-lang.c
|
|||||||
else
|
else
|
||||||
SET_FIELD_BITPOS (TYPE_FIELD (type, i), 8 * boffset);
|
SET_FIELD_BITPOS (TYPE_FIELD (type, i), 8 * boffset);
|
||||||
if (accflags & 0x8000) /* FIELD_UNRESOLVED_FLAG */
|
if (accflags & 0x8000) /* FIELD_UNRESOLVED_FLAG */
|
||||||
Index: gdb-7.4.50.20120602/gdb/value.c
|
Index: gdb-7.5.50.20130118/gdb/value.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20120602.orig/gdb/value.c 2012-06-02 19:11:55.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/value.c 2013-01-18 23:07:03.490358319 +0100
|
||||||
+++ gdb-7.4.50.20120602/gdb/value.c 2012-06-02 19:51:30.031252317 +0200
|
+++ gdb-7.5.50.20130118/gdb/value.c 2013-01-18 23:08:10.287451543 +0100
|
||||||
@@ -2592,7 +2592,8 @@ value_static_field (struct type *type, i
|
@@ -2624,7 +2624,8 @@ value_static_field (struct type *type, i
|
||||||
{
|
{
|
||||||
case FIELD_LOC_KIND_PHYSADDR:
|
case FIELD_LOC_KIND_PHYSADDR:
|
||||||
retval = value_at_lazy (TYPE_FIELD_TYPE (type, fieldno),
|
retval = value_at_lazy (TYPE_FIELD_TYPE (type, fieldno),
|
||||||
|
5627
gdb-archer.patch
5627
gdb-archer.patch
File diff suppressed because it is too large
Load Diff
@ -37,13 +37,13 @@ gdb/gdbserver/
|
|||||||
(linux_create_inferior, linux_tracefork_child): Call it instead of
|
(linux_create_inferior, linux_tracefork_child): Call it instead of
|
||||||
direct ptrace.
|
direct ptrace.
|
||||||
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/common/linux-ptrace.c
|
Index: gdb-7.5.50.20130118/gdb/common/linux-ptrace.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/common/linux-ptrace.c 2012-09-17 20:28:14.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/common/linux-ptrace.c 2013-01-18 23:18:47.313360065 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/common/linux-ptrace.c 2012-09-26 19:13:53.508780239 +0200
|
+++ gdb-7.5.50.20130118/gdb/common/linux-ptrace.c 2013-01-18 23:19:27.269417051 +0100
|
||||||
@@ -28,6 +28,10 @@
|
@@ -29,6 +29,10 @@
|
||||||
#include "buffer.h"
|
|
||||||
#include "gdb_assert.h"
|
#include "gdb_assert.h"
|
||||||
|
#include "gdb_wait.h"
|
||||||
|
|
||||||
+#ifdef HAVE_SELINUX_SELINUX_H
|
+#ifdef HAVE_SELINUX_SELINUX_H
|
||||||
+# include <selinux/selinux.h>
|
+# include <selinux/selinux.h>
|
||||||
@ -52,7 +52,7 @@ Index: gdb-7.5.0.20120926/gdb/common/linux-ptrace.c
|
|||||||
/* Find all possible reasons we could fail to attach PID and append these
|
/* Find all possible reasons we could fail to attach PID and append these
|
||||||
newline terminated reason strings to initialized BUFFER. '\0' termination
|
newline terminated reason strings to initialized BUFFER. '\0' termination
|
||||||
of BUFFER must be done by the caller. */
|
of BUFFER must be done by the caller. */
|
||||||
@@ -47,6 +51,8 @@ linux_ptrace_attach_warnings (pid_t pid,
|
@@ -48,6 +52,8 @@ linux_ptrace_attach_warnings (pid_t pid,
|
||||||
buffer_xml_printf (buffer, _("warning: process %d is a zombie "
|
buffer_xml_printf (buffer, _("warning: process %d is a zombie "
|
||||||
"- the process has already terminated\n"),
|
"- the process has already terminated\n"),
|
||||||
(int) pid);
|
(int) pid);
|
||||||
@ -61,7 +61,7 @@ Index: gdb-7.5.0.20120926/gdb/common/linux-ptrace.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if defined __i386__ || defined __x86_64__
|
#if defined __i386__ || defined __x86_64__
|
||||||
@@ -242,3 +248,19 @@ linux_ptrace_init_warnings (void)
|
@@ -243,3 +249,19 @@ linux_ptrace_init_warnings (void)
|
||||||
|
|
||||||
linux_ptrace_test_ret_to_nx ();
|
linux_ptrace_test_ret_to_nx ();
|
||||||
}
|
}
|
||||||
@ -81,10 +81,10 @@ Index: gdb-7.5.0.20120926/gdb/common/linux-ptrace.c
|
|||||||
+ "(gdb) shell sudo setsebool deny_ptrace=0"));
|
+ "(gdb) shell sudo setsebool deny_ptrace=0"));
|
||||||
+#endif /* HAVE_LIBSELINUX */
|
+#endif /* HAVE_LIBSELINUX */
|
||||||
+}
|
+}
|
||||||
Index: gdb-7.5.0.20120926/gdb/common/linux-ptrace.h
|
Index: gdb-7.5.50.20130118/gdb/common/linux-ptrace.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/common/linux-ptrace.h 2012-07-07 14:13:56.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/common/linux-ptrace.h 2013-01-18 23:18:47.313360065 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/common/linux-ptrace.h 2012-09-26 19:13:28.358765406 +0200
|
+++ gdb-7.5.50.20130118/gdb/common/linux-ptrace.h 2013-01-18 23:19:04.990385360 +0100
|
||||||
@@ -69,5 +69,6 @@ struct buffer;
|
@@ -69,5 +69,6 @@ struct buffer;
|
||||||
|
|
||||||
extern void linux_ptrace_attach_warnings (pid_t pid, struct buffer *buffer);
|
extern void linux_ptrace_attach_warnings (pid_t pid, struct buffer *buffer);
|
||||||
@ -92,11 +92,11 @@ Index: gdb-7.5.0.20120926/gdb/common/linux-ptrace.h
|
|||||||
+extern void linux_ptrace_create_warnings (struct buffer *buffer);
|
+extern void linux_ptrace_create_warnings (struct buffer *buffer);
|
||||||
|
|
||||||
#endif /* COMMON_LINUX_PTRACE_H */
|
#endif /* COMMON_LINUX_PTRACE_H */
|
||||||
Index: gdb-7.5.0.20120926/gdb/configure.ac
|
Index: gdb-7.5.50.20130118/gdb/configure.ac
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/configure.ac 2012-09-26 19:13:24.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/configure.ac 2013-01-18 23:18:47.315360069 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/configure.ac 2012-09-26 19:13:28.410765451 +0200
|
+++ gdb-7.5.50.20130118/gdb/configure.ac 2013-01-18 23:19:04.991385362 +0100
|
||||||
@@ -2008,6 +2008,10 @@ then
|
@@ -2068,6 +2068,10 @@ then
|
||||||
[Define if you support the personality syscall.])
|
[Define if you support the personality syscall.])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -107,11 +107,11 @@ Index: gdb-7.5.0.20120926/gdb/configure.ac
|
|||||||
dnl Handle optional features that can be enabled.
|
dnl Handle optional features that can be enabled.
|
||||||
|
|
||||||
# Support for --with-sysroot is a copy of GDB_AC_WITH_DIR,
|
# Support for --with-sysroot is a copy of GDB_AC_WITH_DIR,
|
||||||
Index: gdb-7.5.0.20120926/gdb/gdbserver/configure.ac
|
Index: gdb-7.5.50.20130118/gdb/gdbserver/configure.ac
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/gdbserver/configure.ac 2012-04-19 21:34:51.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/gdbserver/configure.ac 2013-01-18 23:18:47.315360069 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/gdbserver/configure.ac 2012-09-26 19:13:28.446765428 +0200
|
+++ gdb-7.5.50.20130118/gdb/gdbserver/configure.ac 2013-01-18 23:19:04.991385362 +0100
|
||||||
@@ -438,6 +438,10 @@ if $want_ipa ; then
|
@@ -451,6 +451,10 @@ if $want_ipa ; then
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -122,10 +122,10 @@ Index: gdb-7.5.0.20120926/gdb/gdbserver/configure.ac
|
|||||||
AC_SUBST(GDBSERVER_DEPFILES)
|
AC_SUBST(GDBSERVER_DEPFILES)
|
||||||
AC_SUBST(GDBSERVER_LIBS)
|
AC_SUBST(GDBSERVER_LIBS)
|
||||||
AC_SUBST(USE_THREAD_DB)
|
AC_SUBST(USE_THREAD_DB)
|
||||||
Index: gdb-7.5.0.20120926/gdb/gdbserver/linux-low.c
|
Index: gdb-7.5.50.20130118/gdb/gdbserver/linux-low.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/gdbserver/linux-low.c 2012-07-07 14:13:57.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/gdbserver/linux-low.c 2013-01-18 23:18:47.317360073 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/gdbserver/linux-low.c 2012-09-26 19:13:28.453765471 +0200
|
+++ gdb-7.5.50.20130118/gdb/gdbserver/linux-low.c 2013-01-18 23:19:04.993385366 +0100
|
||||||
@@ -601,6 +601,28 @@ add_lwp (ptid_t ptid)
|
@@ -601,6 +601,28 @@ add_lwp (ptid_t ptid)
|
||||||
return lwp;
|
return lwp;
|
||||||
}
|
}
|
||||||
@ -164,7 +164,7 @@ Index: gdb-7.5.0.20120926/gdb/gdbserver/linux-low.c
|
|||||||
|
|
||||||
#ifndef __ANDROID__ /* Bionic doesn't use SIGRTMIN the way glibc does. */
|
#ifndef __ANDROID__ /* Bionic doesn't use SIGRTMIN the way glibc does. */
|
||||||
signal (__SIGRTMIN + 1, SIG_DFL);
|
signal (__SIGRTMIN + 1, SIG_DFL);
|
||||||
@@ -4572,7 +4594,7 @@ linux_tracefork_grandchild (void *arg)
|
@@ -4574,7 +4596,7 @@ linux_tracefork_grandchild (void *arg)
|
||||||
static int
|
static int
|
||||||
linux_tracefork_child (void *arg)
|
linux_tracefork_child (void *arg)
|
||||||
{
|
{
|
||||||
@ -173,11 +173,11 @@ Index: gdb-7.5.0.20120926/gdb/gdbserver/linux-low.c
|
|||||||
kill (getpid (), SIGSTOP);
|
kill (getpid (), SIGSTOP);
|
||||||
|
|
||||||
#if !(defined(__UCLIBC__) && defined(HAS_NOMMU))
|
#if !(defined(__UCLIBC__) && defined(HAS_NOMMU))
|
||||||
Index: gdb-7.5.0.20120926/gdb/inf-ptrace.c
|
Index: gdb-7.5.50.20130118/gdb/inf-ptrace.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/inf-ptrace.c 2012-05-24 18:51:34.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/inf-ptrace.c 2013-01-18 23:18:47.318360076 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/inf-ptrace.c 2012-09-26 19:13:28.458765461 +0200
|
+++ gdb-7.5.50.20130118/gdb/inf-ptrace.c 2013-01-18 23:19:04.993385366 +0100
|
||||||
@@ -105,7 +105,15 @@ static void
|
@@ -104,7 +104,15 @@ static void
|
||||||
inf_ptrace_me (void)
|
inf_ptrace_me (void)
|
||||||
{
|
{
|
||||||
/* "Trace me, Dr. Memory!" */
|
/* "Trace me, Dr. Memory!" */
|
||||||
@ -193,11 +193,11 @@ Index: gdb-7.5.0.20120926/gdb/inf-ptrace.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Start a new inferior Unix child process. EXEC_FILE is the file to
|
/* Start a new inferior Unix child process. EXEC_FILE is the file to
|
||||||
Index: gdb-7.5.0.20120926/gdb/linux-nat.c
|
Index: gdb-7.5.50.20130118/gdb/linux-nat.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/linux-nat.c 2012-09-26 19:13:22.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/linux-nat.c 2013-01-18 23:18:47.320360083 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/linux-nat.c 2012-09-26 19:13:28.468765469 +0200
|
+++ gdb-7.5.50.20130118/gdb/linux-nat.c 2013-01-18 23:19:04.994385369 +0100
|
||||||
@@ -1574,6 +1574,7 @@ linux_nat_create_inferior (struct target
|
@@ -1578,6 +1578,7 @@ linux_nat_create_inferior (struct target
|
||||||
#ifdef HAVE_PERSONALITY
|
#ifdef HAVE_PERSONALITY
|
||||||
int personality_orig = 0, personality_set = 0;
|
int personality_orig = 0, personality_set = 0;
|
||||||
#endif /* HAVE_PERSONALITY */
|
#endif /* HAVE_PERSONALITY */
|
||||||
@ -205,7 +205,7 @@ Index: gdb-7.5.0.20120926/gdb/linux-nat.c
|
|||||||
|
|
||||||
/* The fork_child mechanism is synchronous and calls target_wait, so
|
/* The fork_child mechanism is synchronous and calls target_wait, so
|
||||||
we have to mask the async mode. */
|
we have to mask the async mode. */
|
||||||
@@ -1598,7 +1599,10 @@ linux_nat_create_inferior (struct target
|
@@ -1602,7 +1603,10 @@ linux_nat_create_inferior (struct target
|
||||||
/* Make sure we report all signals during startup. */
|
/* Make sure we report all signals during startup. */
|
||||||
linux_nat_pass_signals (0, NULL);
|
linux_nat_pass_signals (0, NULL);
|
||||||
|
|
||||||
@ -217,7 +217,7 @@ Index: gdb-7.5.0.20120926/gdb/linux-nat.c
|
|||||||
|
|
||||||
#ifdef HAVE_PERSONALITY
|
#ifdef HAVE_PERSONALITY
|
||||||
if (personality_set)
|
if (personality_set)
|
||||||
@@ -1610,6 +1614,24 @@ linux_nat_create_inferior (struct target
|
@@ -1614,6 +1618,24 @@ linux_nat_create_inferior (struct target
|
||||||
safe_strerror (errno));
|
safe_strerror (errno));
|
||||||
}
|
}
|
||||||
#endif /* HAVE_PERSONALITY */
|
#endif /* HAVE_PERSONALITY */
|
||||||
|
@ -21,24 +21,28 @@ debugging problem of GOMP outside of the scope of this Bug.
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
Index: gdb-7.2.50.20101231/gdb/infrun.c
|
Index: gdb-7.5.50.20130118/gdb/infrun.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.2.50.20101231.orig/gdb/infrun.c 2011-01-01 01:02:45.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/infrun.c 2013-01-19 23:38:22.329371410 +0100
|
||||||
+++ gdb-7.2.50.20101231/gdb/infrun.c 2011-01-01 01:10:22.000000000 +0100
|
+++ gdb-7.5.50.20130118/gdb/infrun.c 2013-01-19 23:39:03.322429041 +0100
|
||||||
@@ -4585,6 +4585,12 @@ infrun: not switching back to stepped th
|
@@ -4918,6 +4918,16 @@ process_event_stop_test:
|
||||||
|
|
||||||
if (ecs->event_thread->control.step_over_calls == STEP_OVER_ALL)
|
if (ecs->event_thread->control.step_over_calls == STEP_OVER_ALL)
|
||||||
{
|
{
|
||||||
+ struct symbol *stop_fn = find_pc_function (stop_pc);
|
+ struct symbol *stop_fn = find_pc_function (stop_pc);
|
||||||
|
+ struct minimal_symbol *stopf = lookup_minimal_symbol_by_pc (stop_pc);
|
||||||
+
|
+
|
||||||
+ if (stop_fn == NULL
|
+ if ((stop_fn == NULL
|
||||||
+ || strstr (SYMBOL_LINKAGE_NAME (stop_fn), ".omp_fn.") == NULL)
|
+ || strstr (SYMBOL_LINKAGE_NAME (stop_fn), ".omp_fn.") == NULL)
|
||||||
|
+ /* gcc-4.7.2-9.fc19.x86_64 uses a new format. */
|
||||||
|
+ && (stopf == NULL
|
||||||
|
+ || strstr (SYMBOL_LINKAGE_NAME (stopf), "._omp_fn.") == NULL))
|
||||||
+{ /* ".omp_fn." */
|
+{ /* ".omp_fn." */
|
||||||
+
|
+
|
||||||
/* We're doing a "next".
|
/* We're doing a "next".
|
||||||
|
|
||||||
Normal (forward) execution: set a breakpoint at the
|
Normal (forward) execution: set a breakpoint at the
|
||||||
@@ -4612,6 +4618,7 @@ infrun: not switching back to stepped th
|
@@ -4953,6 +4963,7 @@ process_event_stop_test:
|
||||||
|
|
||||||
keep_going (ecs);
|
keep_going (ecs);
|
||||||
return;
|
return;
|
||||||
@ -46,10 +50,10 @@ Index: gdb-7.2.50.20101231/gdb/infrun.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* If we are in a function call trampoline (a stub between the
|
/* If we are in a function call trampoline (a stub between the
|
||||||
Index: gdb-7.2.50.20101231/gdb/testsuite/gdb.fortran/omp-step.exp
|
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/omp-step.exp
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ gdb-7.2.50.20101231/gdb/testsuite/gdb.fortran/omp-step.exp 2011-01-01 01:09:58.000000000 +0100
|
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/omp-step.exp 2013-01-19 23:38:23.213372622 +0100
|
||||||
@@ -0,0 +1,31 @@
|
@@ -0,0 +1,31 @@
|
||||||
+# Copyright 2009 Free Software Foundation, Inc.
|
+# Copyright 2009 Free Software Foundation, Inc.
|
||||||
+
|
+
|
||||||
@ -82,10 +86,10 @@ Index: gdb-7.2.50.20101231/gdb/testsuite/gdb.fortran/omp-step.exp
|
|||||||
+
|
+
|
||||||
+gdb_breakpoint [gdb_get_line_number "success"]
|
+gdb_breakpoint [gdb_get_line_number "success"]
|
||||||
+gdb_continue_to_breakpoint "success" ".*success.*"
|
+gdb_continue_to_breakpoint "success" ".*success.*"
|
||||||
Index: gdb-7.2.50.20101231/gdb/testsuite/gdb.fortran/omp-step.f90
|
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/omp-step.f90
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ gdb-7.2.50.20101231/gdb/testsuite/gdb.fortran/omp-step.f90 2011-01-01 01:09:58.000000000 +0100
|
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/omp-step.f90 2013-01-19 23:38:23.213372622 +0100
|
||||||
@@ -0,0 +1,32 @@
|
@@ -0,0 +1,32 @@
|
||||||
+! Copyright 2009 Free Software Foundation, Inc.
|
+! Copyright 2009 Free Software Foundation, Inc.
|
||||||
+
|
+
|
||||||
|
@ -1,169 +0,0 @@
|
|||||||
gdb:
|
|
||||||
https://bugzilla.redhat.com/show_bug.cgi?id=623749
|
|
||||||
kernel:
|
|
||||||
https://bugzilla.redhat.com/show_bug.cgi?id=636937
|
|
||||||
|
|
||||||
http://sourceware.org/ml/gdb-patches/2010-09/msg00395.html
|
|
||||||
Subject: Re: [patch] Fix gcore writer for -Wl,-z,relro (PR corefiles/11804)
|
|
||||||
|
|
||||||
gdb/testsuite/
|
|
||||||
2010-09-22 Jan Kratochvil <jan.kratochvil@redhat.com>
|
|
||||||
|
|
||||||
Fix gcore writer for -Wl,-z,relro.
|
|
||||||
* gdb.base/gcore-relro.exp: New file.
|
|
||||||
* gdb.base/gcore-relro-main.c: New file.
|
|
||||||
* gdb.base/gcore-relro-lib.c: New file.
|
|
||||||
|
|
||||||
--- ./gdb/gcore.c 2010-09-23 20:14:56.000000000 +0200
|
|
||||||
+++ ./gdb/gcore.c 2010-09-23 20:37:56.000000000 +0200
|
|
||||||
@@ -401,6 +401,7 @@ gcore_create_callback (CORE_ADDR vaddr,
|
|
||||||
|
|
||||||
if (write == 0 && !solib_keep_data_in_core (vaddr, size))
|
|
||||||
{
|
|
||||||
+#if 0 /* https://bugzilla.redhat.com/show_bug.cgi?id=636937 */
|
|
||||||
/* See if this region of memory lies inside a known file on disk.
|
|
||||||
If so, we can avoid copying its contents by clearing SEC_LOAD. */
|
|
||||||
struct objfile *objfile;
|
|
||||||
@@ -433,6 +434,7 @@ gcore_create_callback (CORE_ADDR vaddr,
|
|
||||||
}
|
|
||||||
|
|
||||||
keep:
|
|
||||||
+#endif
|
|
||||||
flags |= SEC_READONLY;
|
|
||||||
}
|
|
||||||
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/gdb/testsuite/gdb.base/gcore-relro-lib.c
|
|
||||||
@@ -0,0 +1,21 @@
|
|
||||||
+/* Copyright 2010 Free Software Foundation, Inc.
|
|
||||||
+
|
|
||||||
+ This file is part of GDB.
|
|
||||||
+
|
|
||||||
+ 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 3 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, see <http://www.gnu.org/licenses/>. */
|
|
||||||
+
|
|
||||||
+void
|
|
||||||
+lib (void)
|
|
||||||
+{
|
|
||||||
+}
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/gdb/testsuite/gdb.base/gcore-relro-main.c
|
|
||||||
@@ -0,0 +1,25 @@
|
|
||||||
+/* Copyright 2010 Free Software Foundation, Inc.
|
|
||||||
+
|
|
||||||
+ This file is part of GDB.
|
|
||||||
+
|
|
||||||
+ 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 3 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, see <http://www.gnu.org/licenses/>. */
|
|
||||||
+
|
|
||||||
+extern void lib (void);
|
|
||||||
+
|
|
||||||
+int
|
|
||||||
+main (void)
|
|
||||||
+{
|
|
||||||
+ lib ();
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/gdb/testsuite/gdb.base/gcore-relro.exp
|
|
||||||
@@ -0,0 +1,80 @@
|
|
||||||
+# Copyright 2010 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 3 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, see <http://www.gnu.org/licenses/>.
|
|
||||||
+
|
|
||||||
+if {[skip_shlib_tests]} {
|
|
||||||
+ return 0
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+set testfile "gcore-relro"
|
|
||||||
+set srcmainfile ${testfile}-main.c
|
|
||||||
+set srclibfile ${testfile}-lib.c
|
|
||||||
+set libfile ${objdir}/${subdir}/${testfile}-lib.so
|
|
||||||
+set objfile ${objdir}/${subdir}/${testfile}-main.o
|
|
||||||
+set executable ${testfile}-main
|
|
||||||
+set binfile ${objdir}/${subdir}/${executable}
|
|
||||||
+set gcorefile ${objdir}/${subdir}/${executable}.gcore
|
|
||||||
+
|
|
||||||
+if { [gdb_compile_shlib ${srcdir}/${subdir}/${srclibfile} ${libfile} {debug}] != ""
|
|
||||||
+ || [gdb_compile ${srcdir}/${subdir}/${srcmainfile} ${objfile} object {debug}] != "" } {
|
|
||||||
+ untested ${testfile}.exp
|
|
||||||
+ return -1
|
|
||||||
+}
|
|
||||||
+set opts [list debug shlib=${libfile} additional_flags=-Wl,-z,relro]
|
|
||||||
+if { [gdb_compile ${objfile} ${binfile} executable $opts] != "" } {
|
|
||||||
+ unsupported "-Wl,-z,relro compilation failed"
|
|
||||||
+ return -1
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+clean_restart $executable
|
|
||||||
+gdb_load_shlibs $libfile
|
|
||||||
+
|
|
||||||
+# Does this gdb support gcore?
|
|
||||||
+set test "help gcore"
|
|
||||||
+gdb_test_multiple $test $test {
|
|
||||||
+ -re "Undefined command: .gcore.*\r\n$gdb_prompt $" {
|
|
||||||
+ # gcore command not supported -- nothing to test here.
|
|
||||||
+ unsupported "gdb does not support gcore on this target"
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+ -re "Save a core file .*\r\n$gdb_prompt $" {
|
|
||||||
+ pass $test
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+if { ![runto lib] } then {
|
|
||||||
+ return -1
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+set escapedfilename [string_to_regexp ${gcorefile}]
|
|
||||||
+
|
|
||||||
+set test "save a corefile"
|
|
||||||
+gdb_test_multiple "gcore ${gcorefile}" $test {
|
|
||||||
+ -re "Saved corefile ${escapedfilename}\r\n$gdb_prompt $" {
|
|
||||||
+ pass $test
|
|
||||||
+ }
|
|
||||||
+ -re "Can't create a corefile\r\n$gdb_prompt $" {
|
|
||||||
+ unsupported $test
|
|
||||||
+ return -1
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+# Now restart gdb and load the corefile.
|
|
||||||
+
|
|
||||||
+clean_restart $executable
|
|
||||||
+gdb_load_shlibs $libfile
|
|
||||||
+
|
|
||||||
+gdb_test "core ${gcorefile}" "Core was generated by .*" "re-load generated corefile"
|
|
||||||
+
|
|
||||||
+gdb_test "frame" "#0 \[^\r\n\]* lib .*" "library got loaded"
|
|
1002
gdb-check-type.patch
1002
gdb-check-type.patch
File diff suppressed because it is too large
Load Diff
60
gdb-commonblock-pie.patch
Normal file
60
gdb-commonblock-pie.patch
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
|
||||||
|
index 7a58c45..364e6af 100644
|
||||||
|
--- a/gdb/dwarf2read.c
|
||||||
|
+++ b/gdb/dwarf2read.c
|
||||||
|
@@ -16071,7 +16071,7 @@ new_symbol_full (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
|
||||||
|
list_to_add = &global_symbols;
|
||||||
|
break;
|
||||||
|
case DW_TAG_common_block:
|
||||||
|
- SYMBOL_CLASS (sym) = LOC_STATIC;
|
||||||
|
+ SYMBOL_CLASS (sym) = LOC_COMMON_BLOCK;
|
||||||
|
SYMBOL_DOMAIN (sym) = COMMON_BLOCK_DOMAIN;
|
||||||
|
add_symbol_to_list (sym, cu->list_in_scope);
|
||||||
|
break;
|
||||||
|
diff --git a/gdb/f-valprint.c b/gdb/f-valprint.c
|
||||||
|
index 22cca83..d01d6ec 100644
|
||||||
|
--- a/gdb/f-valprint.c
|
||||||
|
+++ b/gdb/f-valprint.c
|
||||||
|
@@ -427,7 +427,7 @@ info_common_command_for_block (struct block *block, const char *comname,
|
||||||
|
struct common_block *common = SYMBOL_VALUE_COMMON_BLOCK (sym);
|
||||||
|
size_t index;
|
||||||
|
|
||||||
|
- gdb_assert (SYMBOL_CLASS (sym) == LOC_STATIC);
|
||||||
|
+ gdb_assert (SYMBOL_CLASS (sym) == LOC_COMMON_BLOCK);
|
||||||
|
|
||||||
|
if (comname && (!SYMBOL_LINKAGE_NAME (sym)
|
||||||
|
|| strcmp (comname, SYMBOL_LINKAGE_NAME (sym)) != 0))
|
||||||
|
diff --git a/gdb/symtab.h b/gdb/symtab.h
|
||||||
|
index c334a3a..b992266 100644
|
||||||
|
--- a/gdb/symtab.h
|
||||||
|
+++ b/gdb/symtab.h
|
||||||
|
@@ -120,7 +120,7 @@ struct general_symbol_info
|
||||||
|
|
||||||
|
CORE_ADDR address;
|
||||||
|
|
||||||
|
- /* A common block. Used with COMMON_BLOCK_DOMAIN. */
|
||||||
|
+ /* A common block. Used with LOC_COMMON_BLOCK. */
|
||||||
|
|
||||||
|
struct common_block *common_block;
|
||||||
|
|
||||||
|
@@ -414,7 +414,8 @@ typedef enum domain_enum_tag
|
||||||
|
|
||||||
|
LABEL_DOMAIN,
|
||||||
|
|
||||||
|
- /* Fortran common blocks. Their naming must be separate from VAR_DOMAIN. */
|
||||||
|
+ /* Fortran common blocks. Their naming must be separate from VAR_DOMAIN.
|
||||||
|
+ They also always use LOC_COMMON_BLOCK. */
|
||||||
|
COMMON_BLOCK_DOMAIN
|
||||||
|
} domain_enum;
|
||||||
|
|
||||||
|
@@ -533,6 +534,10 @@ enum address_class
|
||||||
|
/* The variable's address is computed by a set of location
|
||||||
|
functions (see "struct symbol_computed_ops" below). */
|
||||||
|
LOC_COMPUTED,
|
||||||
|
+
|
||||||
|
+ /* The variable uses general_symbol_info->value->common_block field.
|
||||||
|
+ It also always uses COMMON_BLOCK_DOMAIN. */
|
||||||
|
+ LOC_COMMON_BLOCK,
|
||||||
|
};
|
||||||
|
|
||||||
|
/* The methods needed to implement LOC_COMPUTED. These methods can
|
@ -3,10 +3,10 @@ Subject: [patch] Fix GNU/Linux core open: Can't read pathname for load map: Inp
|
|||||||
|
|
||||||
[ New patch variant. ]
|
[ New patch variant. ]
|
||||||
|
|
||||||
Index: gdb-7.4.50.20120703/gdb/solib-svr4.c
|
Index: gdb-7.5.50.20130118/gdb/solib-svr4.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20120703.orig/gdb/solib-svr4.c 2012-07-06 15:39:57.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/solib-svr4.c 2013-01-18 23:05:19.414210015 +0100
|
||||||
+++ gdb-7.4.50.20120703/gdb/solib-svr4.c 2012-07-06 15:40:01.124816148 +0200
|
+++ gdb-7.5.50.20130118/gdb/solib-svr4.c 2013-01-18 23:05:34.813231664 +0100
|
||||||
@@ -1221,8 +1221,17 @@ svr4_read_so_list (CORE_ADDR lm, struct
|
@@ -1221,8 +1221,17 @@ svr4_read_so_list (CORE_ADDR lm, struct
|
||||||
SO_NAME_MAX_PATH_SIZE - 1, &errcode);
|
SO_NAME_MAX_PATH_SIZE - 1, &errcode);
|
||||||
if (errcode != 0)
|
if (errcode != 0)
|
||||||
@ -27,20 +27,20 @@ Index: gdb-7.4.50.20120703/gdb/solib-svr4.c
|
|||||||
do_cleanups (old_chain);
|
do_cleanups (old_chain);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
Index: gdb-7.4.50.20120703/gdb/solib.c
|
Index: gdb-7.5.50.20130118/gdb/solib.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20120703.orig/gdb/solib.c 2012-07-06 15:38:39.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/solib.c 2013-01-18 23:05:19.415210017 +0100
|
||||||
+++ gdb-7.4.50.20120703/gdb/solib.c 2012-07-06 15:40:01.125816147 +0200
|
+++ gdb-7.5.50.20130118/gdb/solib.c 2013-01-18 23:05:57.421263173 +0100
|
||||||
@@ -672,7 +672,7 @@ solib_used (const struct so_list *const
|
@@ -666,7 +666,7 @@ solib_used (const struct so_list *const
|
||||||
processes we've just attached to, so that's okay. */
|
processes we've just attached to, so that's okay. */
|
||||||
|
|
||||||
static void
|
static void
|
||||||
-update_solib_list (int from_tty, struct target_ops *target)
|
-update_solib_list (int from_tty, struct target_ops *target)
|
||||||
+update_solib_list_1 (int from_tty, struct target_ops *target)
|
+update_solib_list_1 (int from_tty, struct target_ops *target)
|
||||||
{
|
{
|
||||||
struct target_so_ops *ops = solib_ops (target_gdbarch);
|
struct target_so_ops *ops = solib_ops (target_gdbarch ());
|
||||||
struct so_list *inferior = ops->current_sos();
|
struct so_list *inferior = ops->current_sos();
|
||||||
@@ -843,6 +843,21 @@ Do you need \"set solib-search-path\" or
|
@@ -837,6 +837,21 @@ Do you need \"set solib-search-path\" or
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -62,10 +62,10 @@ Index: gdb-7.4.50.20120703/gdb/solib.c
|
|||||||
|
|
||||||
/* Return non-zero if NAME is the libpthread shared library.
|
/* Return non-zero if NAME is the libpthread shared library.
|
||||||
|
|
||||||
Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.base/corefile.exp
|
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/corefile.exp
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20120703.orig/gdb/testsuite/gdb.base/corefile.exp 2012-07-06 15:39:41.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.base/corefile.exp 2013-01-18 23:05:19.416210020 +0100
|
||||||
+++ gdb-7.4.50.20120703/gdb/testsuite/gdb.base/corefile.exp 2012-07-06 15:40:10.322805539 +0200
|
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/corefile.exp 2013-01-18 23:05:34.814231667 +0100
|
||||||
@@ -286,3 +286,19 @@ if {$buildid == ""} {
|
@@ -286,3 +286,19 @@ if {$buildid == ""} {
|
||||||
gdb_test "info files" "Local exec file:\r\n\[ \t\]*`[string_to_regexp $debugdir/$buildid]', file type .*"
|
gdb_test "info files" "Local exec file:\r\n\[ \t\]*`[string_to_regexp $debugdir/$buildid]', file type .*"
|
||||||
pass $wholetest
|
pass $wholetest
|
||||||
@ -86,10 +86,10 @@ Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.base/corefile.exp
|
|||||||
+ pass $test
|
+ pass $test
|
||||||
+ }
|
+ }
|
||||||
+}
|
+}
|
||||||
Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.base/solib-symbol.exp
|
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/solib-symbol.exp
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20120703.orig/gdb/testsuite/gdb.base/solib-symbol.exp 2012-07-06 15:38:39.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.base/solib-symbol.exp 2013-01-18 23:05:19.416210020 +0100
|
||||||
+++ gdb-7.4.50.20120703/gdb/testsuite/gdb.base/solib-symbol.exp 2012-07-06 15:40:01.127816145 +0200
|
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/solib-symbol.exp 2013-01-18 23:05:34.814231667 +0100
|
||||||
@@ -27,7 +27,8 @@ set lib_flags [list debug ldflags=-Wl,-B
|
@@ -27,7 +27,8 @@ set lib_flags [list debug ldflags=-Wl,-B
|
||||||
# Binary file.
|
# Binary file.
|
||||||
set testfile "solib-symbol-main"
|
set testfile "solib-symbol-main"
|
||||||
|
@ -1,795 +0,0 @@
|
|||||||
http://sourceware.org/ml/gdb-cvs/2012-07/msg00123.html
|
|
||||||
|
|
||||||
### src/gdb/ChangeLog 2012/07/18 04:36:15 1.14473
|
|
||||||
### src/gdb/ChangeLog 2012/07/18 16:12:15 1.14474
|
|
||||||
## -1,3 +1,37 @@
|
|
||||||
+2012-07-18 Sergio Durigan Junior <sergiodj@redhat.com>
|
|
||||||
+
|
|
||||||
+ * elfread.c (elf_get_probe_argument_count): Remove `objfile' argument.
|
|
||||||
+ (elf_compile_to_ax): Likewise.
|
|
||||||
+ * infrun.c (insert_exception_resume_from_probe): Likewise.
|
|
||||||
+ (check_exception_resume): Remove `objfile' variable.
|
|
||||||
+ * probe.c (find_probe_by_pc): Remove `objfile' argument.
|
|
||||||
+ (struct probe_and_objfile, probe_and_objfile_s): Delete.
|
|
||||||
+ (collect_probes): Adjust return value to `VEC (probe_p) *'.
|
|
||||||
+ (compare_entries): Rename to...
|
|
||||||
+ (compare_probes): ...this. Adjust function to work with
|
|
||||||
+ `struct probe *'. Rename variables `ea' and `eb' to `pa' and `pb'
|
|
||||||
+ respectively.
|
|
||||||
+ (gen_ui_out_table_header_info): Adjust `probes' argument to be
|
|
||||||
+ `VEC (probe_p) *'.
|
|
||||||
+ (print_ui_out_info): Adjust argument to be `struct probe *'.
|
|
||||||
+ (info_probes_for_ops): Adjust internal computations to use
|
|
||||||
+ `VEC (probe_p) *'.
|
|
||||||
+ (probe_safe_evaluate_at_pc): Refactor to not pass `objfile' anymore.
|
|
||||||
+ * probe.h (struct probe_ops) <get_probe_argument_count, compile_to_ax,
|
|
||||||
+ gen_info_probes_table_values>: Remove `objfile' argument.
|
|
||||||
+ (struct probe) <objfile>: New field.
|
|
||||||
+ (find_probe_by_pc): Remove `objfile' argument.
|
|
||||||
+ * stap-probe.c (stap_parse_probe_arguments): Likewise.
|
|
||||||
+ (stap_get_probe_argument_count): Likewise.
|
|
||||||
+ (stap_get_arg): Likewise.
|
|
||||||
+ (stap_evaluate_probe_argument): Likewise.
|
|
||||||
+ (stap_compile_to_ax): Likewise.
|
|
||||||
+ (compile_probe_arg): Refactor not to pass `objfile' anymore.
|
|
||||||
+ (handle_stap_probe): Fill `objfile' field from `struct probe'.
|
|
||||||
+ (stap_gen_info_probes_table_header): Remove `objfile' argument.
|
|
||||||
+ * symfile.h (struct sym_probe_fns) <sym_evaluate_probe_argument,
|
|
||||||
+ sym_compile_to_ax>: Likewise.
|
|
||||||
+
|
|
||||||
2012-07-18 Terry Guo <terry.guo@arm.com>
|
|
||||||
|
|
||||||
PR 14329
|
|
||||||
--- src/gdb/elfread.c 2012/06/26 20:14:01 1.133
|
|
||||||
+++ src/gdb/elfread.c 2012/07/18 16:12:15 1.134
|
|
||||||
@@ -1635,33 +1635,29 @@
|
|
||||||
symfile.h. */
|
|
||||||
|
|
||||||
static unsigned
|
|
||||||
-elf_get_probe_argument_count (struct objfile *objfile,
|
|
||||||
- struct probe *probe)
|
|
||||||
+elf_get_probe_argument_count (struct probe *probe)
|
|
||||||
{
|
|
||||||
- return probe->pops->get_probe_argument_count (probe, objfile);
|
|
||||||
+ return probe->pops->get_probe_argument_count (probe);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Implementation of `sym_evaluate_probe_argument', as documented in
|
|
||||||
symfile.h. */
|
|
||||||
|
|
||||||
static struct value *
|
|
||||||
-elf_evaluate_probe_argument (struct objfile *objfile,
|
|
||||||
- struct probe *probe,
|
|
||||||
- unsigned n)
|
|
||||||
+elf_evaluate_probe_argument (struct probe *probe, unsigned n)
|
|
||||||
{
|
|
||||||
- return probe->pops->evaluate_probe_argument (probe, objfile, n);
|
|
||||||
+ return probe->pops->evaluate_probe_argument (probe, n);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Implementation of `sym_compile_to_ax', as documented in symfile.h. */
|
|
||||||
|
|
||||||
static void
|
|
||||||
-elf_compile_to_ax (struct objfile *objfile,
|
|
||||||
- struct probe *probe,
|
|
||||||
+elf_compile_to_ax (struct probe *probe,
|
|
||||||
struct agent_expr *expr,
|
|
||||||
struct axs_value *value,
|
|
||||||
unsigned n)
|
|
||||||
{
|
|
||||||
- probe->pops->compile_to_ax (probe, objfile, expr, value, n);
|
|
||||||
+ probe->pops->compile_to_ax (probe, expr, value, n);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Implementation of `sym_relocate_probe', as documented in symfile.h. */
|
|
||||||
--- src/gdb/infrun.c 2012/07/01 10:37:04 1.549
|
|
||||||
+++ src/gdb/infrun.c 2012/07/18 16:12:16 1.550
|
|
||||||
@@ -5518,7 +5518,6 @@
|
|
||||||
static void
|
|
||||||
insert_exception_resume_from_probe (struct thread_info *tp,
|
|
||||||
const struct probe *probe,
|
|
||||||
- struct objfile *objfile,
|
|
||||||
struct frame_info *frame)
|
|
||||||
{
|
|
||||||
struct value *arg_value;
|
|
||||||
@@ -5534,7 +5533,7 @@
|
|
||||||
if (debug_infrun)
|
|
||||||
fprintf_unfiltered (gdb_stdlog,
|
|
||||||
"infrun: exception resume at %s\n",
|
|
||||||
- paddress (get_objfile_arch (objfile),
|
|
||||||
+ paddress (get_objfile_arch (probe->objfile),
|
|
||||||
handler));
|
|
||||||
|
|
||||||
bp = set_momentary_breakpoint_at_pc (get_frame_arch (frame),
|
|
||||||
@@ -5552,7 +5551,6 @@
|
|
||||||
struct frame_info *frame)
|
|
||||||
{
|
|
||||||
volatile struct gdb_exception e;
|
|
||||||
- struct objfile *objfile;
|
|
||||||
const struct probe *probe;
|
|
||||||
struct symbol *func;
|
|
||||||
|
|
||||||
@@ -5560,11 +5558,10 @@
|
|
||||||
SystemTap probe point. If so, the probe has two arguments: the
|
|
||||||
CFA and the HANDLER. We ignore the CFA, extract the handler, and
|
|
||||||
set a breakpoint there. */
|
|
||||||
- probe = find_probe_by_pc (get_frame_pc (frame), &objfile);
|
|
||||||
+ probe = find_probe_by_pc (get_frame_pc (frame));
|
|
||||||
if (probe)
|
|
||||||
{
|
|
||||||
- insert_exception_resume_from_probe (ecs->event_thread, probe,
|
|
||||||
- objfile, frame);
|
|
||||||
+ insert_exception_resume_from_probe (ecs->event_thread, probe, frame);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
--- src/gdb/probe.c 2012/05/08 01:35:34 1.3
|
|
||||||
+++ src/gdb/probe.c 2012/07/18 16:12:17 1.4
|
|
||||||
@@ -204,7 +204,7 @@
|
|
||||||
/* See definition in probe.h. */
|
|
||||||
|
|
||||||
struct probe *
|
|
||||||
-find_probe_by_pc (CORE_ADDR pc, struct objfile **objfile_out)
|
|
||||||
+find_probe_by_pc (CORE_ADDR pc)
|
|
||||||
{
|
|
||||||
struct objfile *objfile;
|
|
||||||
|
|
||||||
@@ -221,10 +221,7 @@
|
|
||||||
probes = objfile->sf->sym_probe_fns->sym_get_probes (objfile);
|
|
||||||
for (ix = 0; VEC_iterate (probe_p, probes, ix, probe); ix++)
|
|
||||||
if (probe->address == pc)
|
|
||||||
- {
|
|
||||||
- *objfile_out = objfile;
|
|
||||||
- return probe;
|
|
||||||
- }
|
|
||||||
+ return probe;
|
|
||||||
}
|
|
||||||
|
|
||||||
return NULL;
|
|
||||||
@@ -232,21 +229,6 @@
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-/* A utility structure. A VEC of these is built when handling "info
|
|
||||||
- probes". */
|
|
||||||
-
|
|
||||||
-struct probe_and_objfile
|
|
||||||
-{
|
|
||||||
- /* The probe. */
|
|
||||||
- struct probe *probe;
|
|
||||||
-
|
|
||||||
- /* The probe's objfile. */
|
|
||||||
- struct objfile *objfile;
|
|
||||||
-};
|
|
||||||
-
|
|
||||||
-typedef struct probe_and_objfile probe_and_objfile_s;
|
|
||||||
-DEF_VEC_O (probe_and_objfile_s);
|
|
||||||
-
|
|
||||||
/* A helper function for collect_probes that compiles a regexp and
|
|
||||||
throws an exception on error. This installs a cleanup to free the
|
|
||||||
resulting pattern on success. If RX is NULL, this does nothing. */
|
|
||||||
@@ -275,16 +257,16 @@
|
|
||||||
If POPS is not NULL, only probes of this certain probe_ops will match.
|
|
||||||
Each argument is a regexp, or NULL, which matches anything. */
|
|
||||||
|
|
||||||
-static VEC (probe_and_objfile_s) *
|
|
||||||
+static VEC (probe_p) *
|
|
||||||
collect_probes (char *objname, char *provider, char *probe_name,
|
|
||||||
const struct probe_ops *pops)
|
|
||||||
{
|
|
||||||
struct objfile *objfile;
|
|
||||||
- VEC (probe_and_objfile_s) *result = NULL;
|
|
||||||
+ VEC (probe_p) *result = NULL;
|
|
||||||
struct cleanup *cleanup, *cleanup_temps;
|
|
||||||
regex_t obj_pat, prov_pat, probe_pat;
|
|
||||||
|
|
||||||
- cleanup = make_cleanup (VEC_cleanup (probe_and_objfile_s), &result);
|
|
||||||
+ cleanup = make_cleanup (VEC_cleanup (probe_p), &result);
|
|
||||||
|
|
||||||
cleanup_temps = make_cleanup (null_cleanup, NULL);
|
|
||||||
compile_rx_or_error (&prov_pat, provider, _("Invalid provider regexp"));
|
|
||||||
@@ -310,8 +292,6 @@
|
|
||||||
|
|
||||||
for (ix = 0; VEC_iterate (probe_p, probes, ix, probe); ix++)
|
|
||||||
{
|
|
||||||
- probe_and_objfile_s entry;
|
|
||||||
-
|
|
||||||
if (pops != NULL && probe->pops != pops)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
@@ -323,9 +303,7 @@
|
|
||||||
&& regexec (&probe_pat, probe->name, 0, NULL, 0) != 0)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
- entry.probe = probe;
|
|
||||||
- entry.objfile = objfile;
|
|
||||||
- VEC_safe_push (probe_and_objfile_s, result, &entry);
|
|
||||||
+ VEC_safe_push (probe_p, result, probe);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -334,36 +312,36 @@
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
-/* A qsort comparison function for probe_and_objfile_s objects. */
|
|
||||||
+/* A qsort comparison function for probe_p objects. */
|
|
||||||
|
|
||||||
static int
|
|
||||||
-compare_entries (const void *a, const void *b)
|
|
||||||
+compare_probes (const void *a, const void *b)
|
|
||||||
{
|
|
||||||
- const probe_and_objfile_s *ea = a;
|
|
||||||
- const probe_and_objfile_s *eb = b;
|
|
||||||
+ const struct probe *pa = *((const struct probe **) a);
|
|
||||||
+ const struct probe *pb = *((const struct probe **) b);
|
|
||||||
int v;
|
|
||||||
|
|
||||||
- v = strcmp (ea->probe->provider, eb->probe->provider);
|
|
||||||
+ v = strcmp (pa->provider, pb->provider);
|
|
||||||
if (v)
|
|
||||||
return v;
|
|
||||||
|
|
||||||
- v = strcmp (ea->probe->name, eb->probe->name);
|
|
||||||
+ v = strcmp (pa->name, pb->name);
|
|
||||||
if (v)
|
|
||||||
return v;
|
|
||||||
|
|
||||||
- if (ea->probe->address < eb->probe->address)
|
|
||||||
+ if (pa->address < pb->address)
|
|
||||||
return -1;
|
|
||||||
- if (ea->probe->address > eb->probe->address)
|
|
||||||
+ if (pa->address > pb->address)
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
- return strcmp (ea->objfile->name, eb->objfile->name);
|
|
||||||
+ return strcmp (pa->objfile->name, pb->objfile->name);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Helper function that generate entries in the ui_out table being
|
|
||||||
crafted by `info_probes_for_ops'. */
|
|
||||||
|
|
||||||
static void
|
|
||||||
-gen_ui_out_table_header_info (VEC (probe_and_objfile_s) *probes,
|
|
||||||
+gen_ui_out_table_header_info (VEC (probe_p) *probes,
|
|
||||||
const struct probe_ops *p)
|
|
||||||
{
|
|
||||||
/* `headings' refers to the names of the columns when printing `info
|
|
||||||
@@ -392,11 +370,11 @@
|
|
||||||
VEC_iterate (info_probe_column_s, headings, ix, column);
|
|
||||||
++ix)
|
|
||||||
{
|
|
||||||
- probe_and_objfile_s *entry;
|
|
||||||
+ struct probe *probe;
|
|
||||||
int jx;
|
|
||||||
size_t size_max = strlen (column->print_name);
|
|
||||||
|
|
||||||
- for (jx = 0; VEC_iterate (probe_and_objfile_s, probes, jx, entry); ++jx)
|
|
||||||
+ for (jx = 0; VEC_iterate (probe_p, probes, jx, probe); ++jx)
|
|
||||||
{
|
|
||||||
/* `probe_fields' refers to the values of each new field that this
|
|
||||||
probe will display. */
|
|
||||||
@@ -405,12 +383,11 @@
|
|
||||||
const char *val;
|
|
||||||
int kx;
|
|
||||||
|
|
||||||
- if (entry->probe->pops != p)
|
|
||||||
+ if (probe->pops != p)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
c2 = make_cleanup (VEC_cleanup (const_char_ptr), &probe_fields);
|
|
||||||
- p->gen_info_probes_table_values (entry->probe, entry->objfile,
|
|
||||||
- &probe_fields);
|
|
||||||
+ p->gen_info_probes_table_values (probe, &probe_fields);
|
|
||||||
|
|
||||||
gdb_assert (VEC_length (const_char_ptr, probe_fields)
|
|
||||||
== headings_size);
|
|
||||||
@@ -437,10 +414,10 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Helper function to print extra information about a probe and an objfile
|
|
||||||
- represented by ENTRY. */
|
|
||||||
+ represented by PROBE. */
|
|
||||||
|
|
||||||
static void
|
|
||||||
-print_ui_out_info (probe_and_objfile_s *entry)
|
|
||||||
+print_ui_out_info (struct probe *probe)
|
|
||||||
{
|
|
||||||
int ix;
|
|
||||||
int j = 0;
|
|
||||||
@@ -451,23 +428,21 @@
|
|
||||||
info_probe_column_s *column;
|
|
||||||
struct cleanup *c;
|
|
||||||
|
|
||||||
- gdb_assert (entry != NULL);
|
|
||||||
- gdb_assert (entry->probe != NULL);
|
|
||||||
- gdb_assert (entry->probe->pops != NULL);
|
|
||||||
+ gdb_assert (probe != NULL);
|
|
||||||
+ gdb_assert (probe->pops != NULL);
|
|
||||||
|
|
||||||
- if (entry->probe->pops->gen_info_probes_table_header == NULL
|
|
||||||
- && entry->probe->pops->gen_info_probes_table_values == NULL)
|
|
||||||
+ if (probe->pops->gen_info_probes_table_header == NULL
|
|
||||||
+ && probe->pops->gen_info_probes_table_values == NULL)
|
|
||||||
return;
|
|
||||||
|
|
||||||
- gdb_assert (entry->probe->pops->gen_info_probes_table_header != NULL
|
|
||||||
- && entry->probe->pops->gen_info_probes_table_values != NULL);
|
|
||||||
+ gdb_assert (probe->pops->gen_info_probes_table_header != NULL
|
|
||||||
+ && probe->pops->gen_info_probes_table_values != NULL);
|
|
||||||
|
|
||||||
c = make_cleanup (VEC_cleanup (info_probe_column_s), &headings);
|
|
||||||
make_cleanup (VEC_cleanup (const_char_ptr), &values);
|
|
||||||
|
|
||||||
- entry->probe->pops->gen_info_probes_table_header (&headings);
|
|
||||||
- entry->probe->pops->gen_info_probes_table_values (entry->probe,
|
|
||||||
- entry->objfile, &values);
|
|
||||||
+ probe->pops->gen_info_probes_table_header (&headings);
|
|
||||||
+ probe->pops->gen_info_probes_table_values (probe, &values);
|
|
||||||
|
|
||||||
gdb_assert (VEC_length (info_probe_column_s, headings)
|
|
||||||
== VEC_length (const_char_ptr, values));
|
|
||||||
@@ -515,16 +490,16 @@
|
|
||||||
void
|
|
||||||
info_probes_for_ops (char *arg, int from_tty, const struct probe_ops *pops)
|
|
||||||
{
|
|
||||||
- char *provider, *probe = NULL, *objname = NULL;
|
|
||||||
+ char *provider, *probe_name = NULL, *objname = NULL;
|
|
||||||
struct cleanup *cleanup = make_cleanup (null_cleanup, NULL);
|
|
||||||
- VEC (probe_and_objfile_s) *items;
|
|
||||||
+ VEC (probe_p) *probes;
|
|
||||||
int i, any_found;
|
|
||||||
int ui_out_extra_fields = 0;
|
|
||||||
size_t size_addr;
|
|
||||||
size_t size_name = strlen ("Name");
|
|
||||||
size_t size_objname = strlen ("Object");
|
|
||||||
size_t size_provider = strlen ("Provider");
|
|
||||||
- probe_and_objfile_s *entry;
|
|
||||||
+ struct probe *probe;
|
|
||||||
struct gdbarch *gdbarch = get_current_arch ();
|
|
||||||
|
|
||||||
/* Do we have a `provider:probe:objfile' style of linespec? */
|
|
||||||
@@ -533,10 +508,10 @@
|
|
||||||
{
|
|
||||||
make_cleanup (xfree, provider);
|
|
||||||
|
|
||||||
- probe = extract_arg (&arg);
|
|
||||||
- if (probe)
|
|
||||||
+ probe_name = extract_arg (&arg);
|
|
||||||
+ if (probe_name)
|
|
||||||
{
|
|
||||||
- make_cleanup (xfree, probe);
|
|
||||||
+ make_cleanup (xfree, probe_name);
|
|
||||||
|
|
||||||
objname = extract_arg (&arg);
|
|
||||||
if (objname)
|
|
||||||
@@ -564,28 +539,27 @@
|
|
||||||
else
|
|
||||||
ui_out_extra_fields = get_number_extra_fields (pops);
|
|
||||||
|
|
||||||
- items = collect_probes (objname, provider, probe, pops);
|
|
||||||
- make_cleanup (VEC_cleanup (probe_and_objfile_s), &items);
|
|
||||||
+ probes = collect_probes (objname, provider, probe_name, pops);
|
|
||||||
+ make_cleanup (VEC_cleanup (probe_p), &probes);
|
|
||||||
make_cleanup_ui_out_table_begin_end (current_uiout,
|
|
||||||
4 + ui_out_extra_fields,
|
|
||||||
- VEC_length (probe_and_objfile_s, items),
|
|
||||||
+ VEC_length (probe_p, probes),
|
|
||||||
"StaticProbes");
|
|
||||||
|
|
||||||
- if (!VEC_empty (probe_and_objfile_s, items))
|
|
||||||
- qsort (VEC_address (probe_and_objfile_s, items),
|
|
||||||
- VEC_length (probe_and_objfile_s, items),
|
|
||||||
- sizeof (probe_and_objfile_s), compare_entries);
|
|
||||||
+ if (!VEC_empty (probe_p, probes))
|
|
||||||
+ qsort (VEC_address (probe_p, probes), VEC_length (probe_p, probes),
|
|
||||||
+ sizeof (probe_p), compare_probes);
|
|
||||||
|
|
||||||
/* What's the size of an address in our architecture? */
|
|
||||||
size_addr = gdbarch_addr_bit (gdbarch) == 64 ? 18 : 10;
|
|
||||||
|
|
||||||
/* Determining the maximum size of each field (`provider', `name' and
|
|
||||||
`objname'). */
|
|
||||||
- for (i = 0; VEC_iterate (probe_and_objfile_s, items, i, entry); ++i)
|
|
||||||
+ for (i = 0; VEC_iterate (probe_p, probes, i, probe); ++i)
|
|
||||||
{
|
|
||||||
- size_name = max (strlen (entry->probe->name), size_name);
|
|
||||||
- size_provider = max (strlen (entry->probe->provider), size_provider);
|
|
||||||
- size_objname = max (strlen (entry->objfile->name), size_objname);
|
|
||||||
+ size_name = max (strlen (probe->name), size_name);
|
|
||||||
+ size_provider = max (strlen (probe->provider), size_provider);
|
|
||||||
+ size_objname = max (strlen (probe->objfile->name), size_objname);
|
|
||||||
}
|
|
||||||
|
|
||||||
ui_out_table_header (current_uiout, size_provider, ui_left, "provider",
|
|
||||||
@@ -601,26 +575,26 @@
|
|
||||||
/* We have to generate the table header for each new probe type that we
|
|
||||||
will print. */
|
|
||||||
for (ix = 0; VEC_iterate (probe_ops_cp, all_probe_ops, ix, po); ++ix)
|
|
||||||
- gen_ui_out_table_header_info (items, po);
|
|
||||||
+ gen_ui_out_table_header_info (probes, po);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
- gen_ui_out_table_header_info (items, pops);
|
|
||||||
+ gen_ui_out_table_header_info (probes, pops);
|
|
||||||
|
|
||||||
ui_out_table_header (current_uiout, size_objname, ui_left, "object",
|
|
||||||
_("Object"));
|
|
||||||
ui_out_table_body (current_uiout);
|
|
||||||
|
|
||||||
- for (i = 0; VEC_iterate (probe_and_objfile_s, items, i, entry); ++i)
|
|
||||||
+ for (i = 0; VEC_iterate (probe_p, probes, i, probe); ++i)
|
|
||||||
{
|
|
||||||
struct cleanup *inner;
|
|
||||||
|
|
||||||
inner = make_cleanup_ui_out_tuple_begin_end (current_uiout, "probe");
|
|
||||||
|
|
||||||
- ui_out_field_string (current_uiout, "provider", entry->probe->provider);
|
|
||||||
- ui_out_field_string (current_uiout, "name", entry->probe->name);
|
|
||||||
+ ui_out_field_string (current_uiout, "provider", probe->provider);
|
|
||||||
+ ui_out_field_string (current_uiout, "name", probe->name);
|
|
||||||
ui_out_field_core_addr (current_uiout, "addr",
|
|
||||||
- get_objfile_arch (entry->objfile),
|
|
||||||
- entry->probe->address);
|
|
||||||
+ get_objfile_arch (probe->objfile),
|
|
||||||
+ probe->address);
|
|
||||||
|
|
||||||
if (pops == NULL)
|
|
||||||
{
|
|
||||||
@@ -629,19 +603,19 @@
|
|
||||||
|
|
||||||
for (ix = 0; VEC_iterate (probe_ops_cp, all_probe_ops, ix, po);
|
|
||||||
++ix)
|
|
||||||
- if (entry->probe->pops == po)
|
|
||||||
- print_ui_out_info (entry);
|
|
||||||
+ if (probe->pops == po)
|
|
||||||
+ print_ui_out_info (probe);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
- print_ui_out_info (entry);
|
|
||||||
+ print_ui_out_info (probe);
|
|
||||||
|
|
||||||
- ui_out_field_string (current_uiout, "object", entry->objfile->name);
|
|
||||||
+ ui_out_field_string (current_uiout, "object", probe->objfile->name);
|
|
||||||
ui_out_text (current_uiout, "\n");
|
|
||||||
|
|
||||||
do_cleanups (inner);
|
|
||||||
}
|
|
||||||
|
|
||||||
- any_found = !VEC_empty (probe_and_objfile_s, items);
|
|
||||||
+ any_found = !VEC_empty (probe_p, probes);
|
|
||||||
do_cleanups (cleanup);
|
|
||||||
|
|
||||||
if (!any_found)
|
|
||||||
@@ -662,23 +636,24 @@
|
|
||||||
probe_safe_evaluate_at_pc (struct frame_info *frame, unsigned n)
|
|
||||||
{
|
|
||||||
struct probe *probe;
|
|
||||||
- struct objfile *objfile;
|
|
||||||
+ const struct sym_probe_fns *probe_fns;
|
|
||||||
unsigned n_probes;
|
|
||||||
|
|
||||||
- probe = find_probe_by_pc (get_frame_pc (frame), &objfile);
|
|
||||||
+ probe = find_probe_by_pc (get_frame_pc (frame));
|
|
||||||
if (!probe)
|
|
||||||
return NULL;
|
|
||||||
- gdb_assert (objfile->sf && objfile->sf->sym_probe_fns);
|
|
||||||
|
|
||||||
- n_probes
|
|
||||||
- = objfile->sf->sym_probe_fns->sym_get_probe_argument_count (objfile,
|
|
||||||
- probe);
|
|
||||||
+ gdb_assert (probe->objfile != NULL);
|
|
||||||
+ gdb_assert (probe->objfile->sf != NULL);
|
|
||||||
+ gdb_assert (probe->objfile->sf->sym_probe_fns != NULL);
|
|
||||||
+
|
|
||||||
+ probe_fns = probe->objfile->sf->sym_probe_fns;
|
|
||||||
+ n_probes = probe_fns->sym_get_probe_argument_count (probe);
|
|
||||||
+
|
|
||||||
if (n >= n_probes)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
- return objfile->sf->sym_probe_fns->sym_evaluate_probe_argument (objfile,
|
|
||||||
- probe,
|
|
||||||
- n);
|
|
||||||
+ return probe_fns->sym_evaluate_probe_argument (probe, n);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* See comment in probe.h. */
|
|
||||||
--- src/gdb/probe.h 2012/04/27 20:47:55 1.1
|
|
||||||
+++ src/gdb/probe.h 2012/07/18 16:12:17 1.2
|
|
||||||
@@ -66,21 +66,18 @@
|
|
||||||
|
|
||||||
/* Return the number of arguments of PROBE. */
|
|
||||||
|
|
||||||
- unsigned (*get_probe_argument_count) (struct probe *probe,
|
|
||||||
- struct objfile *objfile);
|
|
||||||
+ unsigned (*get_probe_argument_count) (struct probe *probe);
|
|
||||||
|
|
||||||
/* Evaluate the Nth argument from the PROBE, returning a value
|
|
||||||
corresponding to it. The argument number is represented N. */
|
|
||||||
|
|
||||||
struct value *(*evaluate_probe_argument) (struct probe *probe,
|
|
||||||
- struct objfile *objfile,
|
|
||||||
unsigned n);
|
|
||||||
|
|
||||||
/* Compile the Nth argument of the PROBE to an agent expression.
|
|
||||||
The argument number is represented by N. */
|
|
||||||
|
|
||||||
- void (*compile_to_ax) (struct probe *probe, struct objfile *objfile,
|
|
||||||
- struct agent_expr *aexpr,
|
|
||||||
+ void (*compile_to_ax) (struct probe *probe, struct agent_expr *aexpr,
|
|
||||||
struct axs_value *axs_value, unsigned n);
|
|
||||||
|
|
||||||
/* Set the semaphore associated with the PROBE. This function only makes
|
|
||||||
@@ -108,8 +105,8 @@
|
|
||||||
void (*gen_info_probes_table_header) (VEC (info_probe_column_s) **heads);
|
|
||||||
|
|
||||||
/* Function that will fill VALUES with the values of the extra fields
|
|
||||||
- to be printed for PROBE and OBJFILE. If the backend implements
|
|
||||||
- the `gen_ui_out_table_header' method, then it should implement
|
|
||||||
+ to be printed for PROBE. If the backend implements the
|
|
||||||
+ `gen_ui_out_table_header' method, then it should implement
|
|
||||||
this method as well. The backend should also guarantee that the
|
|
||||||
order and the number of values in the vector is exactly the same
|
|
||||||
as the order of the extra fields provided in the method
|
|
||||||
@@ -118,7 +115,6 @@
|
|
||||||
position in the vector. */
|
|
||||||
|
|
||||||
void (*gen_info_probes_table_values) (struct probe *probe,
|
|
||||||
- struct objfile *objfile,
|
|
||||||
VEC (const_char_ptr) **values);
|
|
||||||
};
|
|
||||||
|
|
||||||
@@ -157,6 +153,11 @@
|
|
||||||
/* The operations associated with this probe. */
|
|
||||||
const struct probe_ops *pops;
|
|
||||||
|
|
||||||
+ /* The objfile which contains this probe. Even if the probe is also
|
|
||||||
+ present in a separate debug objfile, this variable always points to
|
|
||||||
+ the non-separate debug objfile. */
|
|
||||||
+ struct objfile *objfile;
|
|
||||||
+
|
|
||||||
/* The name of the probe. */
|
|
||||||
const char *name;
|
|
||||||
|
|
||||||
@@ -181,11 +182,9 @@
|
|
||||||
extern void register_probe_ops (struct probe *probe);
|
|
||||||
|
|
||||||
/* Given a PC, find an associated probe with type PTYPE. If a probe is
|
|
||||||
- found, set *OBJFILE_OUT to the probe's objfile, and return the
|
|
||||||
- probe. If no probe is found, return NULL. */
|
|
||||||
+ found, return it. If no probe is found, return NULL. */
|
|
||||||
|
|
||||||
-extern struct probe *find_probe_by_pc (CORE_ADDR pc,
|
|
||||||
- struct objfile **objfile_out);
|
|
||||||
+extern struct probe *find_probe_by_pc (CORE_ADDR pc);
|
|
||||||
|
|
||||||
/* Search OBJFILE for a probe with the given PROVIDER, NAME and PTYPE.
|
|
||||||
Return a VEC of all probes that were found. If no matching probe
|
|
||||||
--- src/gdb/stap-probe.c 2012/05/08 01:35:35 1.4
|
|
||||||
+++ src/gdb/stap-probe.c 2012/07/18 16:12:17 1.5
|
|
||||||
@@ -903,10 +903,10 @@
|
|
||||||
this information. */
|
|
||||||
|
|
||||||
static void
|
|
||||||
-stap_parse_probe_arguments (struct stap_probe *probe, struct objfile *objfile)
|
|
||||||
+stap_parse_probe_arguments (struct stap_probe *probe)
|
|
||||||
{
|
|
||||||
const char *cur;
|
|
||||||
- struct gdbarch *gdbarch = get_objfile_arch (objfile);
|
|
||||||
+ struct gdbarch *gdbarch = get_objfile_arch (probe->p.objfile);
|
|
||||||
|
|
||||||
gdb_assert (!probe->args_parsed);
|
|
||||||
cur = probe->args_u.text;
|
|
||||||
@@ -991,15 +991,14 @@
|
|
||||||
argument string. */
|
|
||||||
|
|
||||||
static unsigned
|
|
||||||
-stap_get_probe_argument_count (struct probe *probe_generic,
|
|
||||||
- struct objfile *objfile)
|
|
||||||
+stap_get_probe_argument_count (struct probe *probe_generic)
|
|
||||||
{
|
|
||||||
struct stap_probe *probe = (struct stap_probe *) probe_generic;
|
|
||||||
|
|
||||||
gdb_assert (probe_generic->pops == &stap_probe_ops);
|
|
||||||
|
|
||||||
if (!probe->args_parsed)
|
|
||||||
- stap_parse_probe_arguments (probe, objfile);
|
|
||||||
+ stap_parse_probe_arguments (probe);
|
|
||||||
|
|
||||||
gdb_assert (probe->args_parsed);
|
|
||||||
return VEC_length (stap_probe_arg_s, probe->args_u.vec);
|
|
||||||
@@ -1042,10 +1041,10 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct stap_probe_arg *
|
|
||||||
-stap_get_arg (struct stap_probe *probe, struct objfile *objfile, unsigned n)
|
|
||||||
+stap_get_arg (struct stap_probe *probe, unsigned n)
|
|
||||||
{
|
|
||||||
if (!probe->args_parsed)
|
|
||||||
- stap_parse_probe_arguments (probe, objfile);
|
|
||||||
+ stap_parse_probe_arguments (probe);
|
|
||||||
|
|
||||||
return VEC_index (stap_probe_arg_s, probe->args_u.vec, n);
|
|
||||||
}
|
|
||||||
@@ -1054,8 +1053,7 @@
|
|
||||||
corresponding to it. Assertion is thrown if N does not exist. */
|
|
||||||
|
|
||||||
static struct value *
|
|
||||||
-stap_evaluate_probe_argument (struct probe *probe_generic,
|
|
||||||
- struct objfile *objfile, unsigned n)
|
|
||||||
+stap_evaluate_probe_argument (struct probe *probe_generic, unsigned n)
|
|
||||||
{
|
|
||||||
struct stap_probe *stap_probe = (struct stap_probe *) probe_generic;
|
|
||||||
struct stap_probe_arg *arg;
|
|
||||||
@@ -1063,7 +1061,7 @@
|
|
||||||
|
|
||||||
gdb_assert (probe_generic->pops == &stap_probe_ops);
|
|
||||||
|
|
||||||
- arg = stap_get_arg (stap_probe, objfile, n);
|
|
||||||
+ arg = stap_get_arg (stap_probe, n);
|
|
||||||
return evaluate_subexp_standard (arg->atype, arg->aexpr, &pos, EVAL_NORMAL);
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1071,9 +1069,8 @@
|
|
||||||
Assertion is thrown if N does not exist. */
|
|
||||||
|
|
||||||
static void
|
|
||||||
-stap_compile_to_ax (struct probe *probe_generic, struct objfile *objfile,
|
|
||||||
- struct agent_expr *expr, struct axs_value *value,
|
|
||||||
- unsigned n)
|
|
||||||
+stap_compile_to_ax (struct probe *probe_generic, struct agent_expr *expr,
|
|
||||||
+ struct axs_value *value, unsigned n)
|
|
||||||
{
|
|
||||||
struct stap_probe *stap_probe = (struct stap_probe *) probe_generic;
|
|
||||||
struct stap_probe_arg *arg;
|
|
||||||
@@ -1081,7 +1078,7 @@
|
|
||||||
|
|
||||||
gdb_assert (probe_generic->pops == &stap_probe_ops);
|
|
||||||
|
|
||||||
- arg = stap_get_arg (stap_probe, objfile, n);
|
|
||||||
+ arg = stap_get_arg (stap_probe, n);
|
|
||||||
|
|
||||||
pc = arg->aexpr->elts;
|
|
||||||
gen_expr (arg->aexpr, &pc, expr, value);
|
|
||||||
@@ -1124,20 +1121,24 @@
|
|
||||||
struct frame_info *frame = get_selected_frame (_("No frame selected"));
|
|
||||||
CORE_ADDR pc = get_frame_pc (frame);
|
|
||||||
int sel = (int) (uintptr_t) data;
|
|
||||||
- struct objfile *objfile;
|
|
||||||
struct probe *pc_probe;
|
|
||||||
+ const struct sym_probe_fns *pc_probe_fns;
|
|
||||||
unsigned n_args;
|
|
||||||
|
|
||||||
/* SEL == -1 means "_probe_argc". */
|
|
||||||
gdb_assert (sel >= -1);
|
|
||||||
|
|
||||||
- pc_probe = find_probe_by_pc (pc, &objfile);
|
|
||||||
+ pc_probe = find_probe_by_pc (pc);
|
|
||||||
if (pc_probe == NULL)
|
|
||||||
error (_("No SystemTap probe at PC %s"), core_addr_to_string (pc));
|
|
||||||
|
|
||||||
- n_args
|
|
||||||
- = objfile->sf->sym_probe_fns->sym_get_probe_argument_count (objfile,
|
|
||||||
- pc_probe);
|
|
||||||
+ gdb_assert (pc_probe->objfile != NULL);
|
|
||||||
+ gdb_assert (pc_probe->objfile->sf != NULL);
|
|
||||||
+ gdb_assert (pc_probe->objfile->sf->sym_probe_fns != NULL);
|
|
||||||
+
|
|
||||||
+ pc_probe_fns = pc_probe->objfile->sf->sym_probe_fns;
|
|
||||||
+
|
|
||||||
+ n_args = pc_probe_fns->sym_get_probe_argument_count (pc_probe);
|
|
||||||
if (sel == -1)
|
|
||||||
return value_from_longest (builtin_type (arch)->builtin_int, n_args);
|
|
||||||
|
|
||||||
@@ -1145,9 +1146,7 @@
|
|
||||||
error (_("Invalid probe argument %d -- probe has %u arguments available"),
|
|
||||||
sel, n_args);
|
|
||||||
|
|
||||||
- return objfile->sf->sym_probe_fns->sym_evaluate_probe_argument (objfile,
|
|
||||||
- pc_probe,
|
|
||||||
- sel);
|
|
||||||
+ return pc_probe_fns->sym_evaluate_probe_argument (pc_probe, sel);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* This is called to compile one of the $_probe_arg* convenience
|
|
||||||
@@ -1159,20 +1158,25 @@
|
|
||||||
{
|
|
||||||
CORE_ADDR pc = expr->scope;
|
|
||||||
int sel = (int) (uintptr_t) data;
|
|
||||||
- struct objfile *objfile;
|
|
||||||
struct probe *pc_probe;
|
|
||||||
+ const struct sym_probe_fns *pc_probe_fns;
|
|
||||||
int n_probes;
|
|
||||||
|
|
||||||
/* SEL == -1 means "_probe_argc". */
|
|
||||||
gdb_assert (sel >= -1);
|
|
||||||
|
|
||||||
- pc_probe = find_probe_by_pc (pc, &objfile);
|
|
||||||
+ pc_probe = find_probe_by_pc (pc);
|
|
||||||
if (pc_probe == NULL)
|
|
||||||
error (_("No SystemTap probe at PC %s"), core_addr_to_string (pc));
|
|
||||||
|
|
||||||
- n_probes
|
|
||||||
- = objfile->sf->sym_probe_fns->sym_get_probe_argument_count (objfile,
|
|
||||||
- pc_probe);
|
|
||||||
+ gdb_assert (pc_probe->objfile != NULL);
|
|
||||||
+ gdb_assert (pc_probe->objfile->sf != NULL);
|
|
||||||
+ gdb_assert (pc_probe->objfile->sf->sym_probe_fns != NULL);
|
|
||||||
+
|
|
||||||
+ pc_probe_fns = pc_probe->objfile->sf->sym_probe_fns;
|
|
||||||
+
|
|
||||||
+ n_probes = pc_probe_fns->sym_get_probe_argument_count (pc_probe);
|
|
||||||
+
|
|
||||||
if (sel == -1)
|
|
||||||
{
|
|
||||||
value->kind = axs_rvalue;
|
|
||||||
@@ -1186,8 +1190,7 @@
|
|
||||||
error (_("Invalid probe argument %d -- probe has %d arguments available"),
|
|
||||||
sel, n_probes);
|
|
||||||
|
|
||||||
- objfile->sf->sym_probe_fns->sym_compile_to_ax (objfile, pc_probe,
|
|
||||||
- expr, value, sel);
|
|
||||||
+ pc_probe_fns->sym_compile_to_ax (pc_probe, expr, value, sel);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1297,6 +1300,7 @@
|
|
||||||
|
|
||||||
ret = obstack_alloc (&objfile->objfile_obstack, sizeof (*ret));
|
|
||||||
ret->p.pops = &stap_probe_ops;
|
|
||||||
+ ret->p.objfile = objfile;
|
|
||||||
|
|
||||||
/* Provider and the name of the probe. */
|
|
||||||
ret->p.provider = &el->data[3 * size];
|
|
||||||
@@ -1481,15 +1485,16 @@
|
|
||||||
|
|
||||||
static void
|
|
||||||
stap_gen_info_probes_table_values (struct probe *probe_generic,
|
|
||||||
- struct objfile *objfile,
|
|
||||||
VEC (const_char_ptr) **ret)
|
|
||||||
{
|
|
||||||
struct stap_probe *probe = (struct stap_probe *) probe_generic;
|
|
||||||
- struct gdbarch *gdbarch = get_objfile_arch (objfile);
|
|
||||||
+ struct gdbarch *gdbarch;
|
|
||||||
const char *val = NULL;
|
|
||||||
|
|
||||||
gdb_assert (probe_generic->pops == &stap_probe_ops);
|
|
||||||
|
|
||||||
+ gdbarch = get_objfile_arch (probe->p.objfile);
|
|
||||||
+
|
|
||||||
if (probe->sem_addr)
|
|
||||||
val = print_core_address (gdbarch, probe->sem_addr);
|
|
||||||
|
|
||||||
--- src/gdb/symfile.h 2012/05/24 22:14:35 1.109
|
|
||||||
+++ src/gdb/symfile.h 2012/07/18 16:12:17 1.110
|
|
||||||
@@ -320,8 +320,7 @@
|
|
||||||
have come from a call to this objfile's sym_get_probes method.
|
|
||||||
If you provide an implementation of sym_get_probes, you must
|
|
||||||
implement this method as well. */
|
|
||||||
- unsigned (*sym_get_probe_argument_count) (struct objfile *objfile,
|
|
||||||
- struct probe *probe);
|
|
||||||
+ unsigned (*sym_get_probe_argument_count) (struct probe *probe);
|
|
||||||
|
|
||||||
/* Evaluate the Nth argument available to PROBE. PROBE will have
|
|
||||||
come from a call to this objfile's sym_get_probes method. N will
|
|
||||||
@@ -330,8 +329,7 @@
|
|
||||||
PC will match the address of the probe. If you provide an
|
|
||||||
implementation of sym_get_probes, you must implement this method
|
|
||||||
as well. */
|
|
||||||
- struct value *(*sym_evaluate_probe_argument) (struct objfile *objfile,
|
|
||||||
- struct probe *probe,
|
|
||||||
+ struct value *(*sym_evaluate_probe_argument) (struct probe *probe,
|
|
||||||
unsigned n);
|
|
||||||
|
|
||||||
/* Compile the Nth probe argument to an agent expression. PROBE
|
|
||||||
@@ -339,8 +337,7 @@
|
|
||||||
method. N will be between 0 and the number of arguments
|
|
||||||
available to this probe. EXPR and VALUE are the agent expression
|
|
||||||
that is being updated. */
|
|
||||||
- void (*sym_compile_to_ax) (struct objfile *objfile,
|
|
||||||
- struct probe *probe,
|
|
||||||
+ void (*sym_compile_to_ax) (struct probe *probe,
|
|
||||||
struct agent_expr *expr,
|
|
||||||
struct axs_value *value,
|
|
||||||
unsigned n);
|
|
@ -1,74 +0,0 @@
|
|||||||
http://sourceware.org/ml/gdb-cvs/2012-07/msg00124.html
|
|
||||||
|
|
||||||
### src/gdb/ChangeLog 2012/07/18 16:12:15 1.14474
|
|
||||||
### src/gdb/ChangeLog 2012/07/18 16:20:36 1.14475
|
|
||||||
## -1,5 +1,10 @@
|
|
||||||
2012-07-18 Sergio Durigan Junior <sergiodj@redhat.com>
|
|
||||||
|
|
||||||
+ * probe.c (probe_safe_evaluate_at_pc): Rename variable `n_probes'.
|
|
||||||
+ * stap-probe.c (compile_probe_arg): Likewise.
|
|
||||||
+
|
|
||||||
+2012-07-18 Sergio Durigan Junior <sergiodj@redhat.com>
|
|
||||||
+
|
|
||||||
* elfread.c (elf_get_probe_argument_count): Remove `objfile' argument.
|
|
||||||
(elf_compile_to_ax): Likewise.
|
|
||||||
* infrun.c (insert_exception_resume_from_probe): Likewise.
|
|
||||||
--- src/gdb/probe.c 2012/07/18 16:12:17 1.4
|
|
||||||
+++ src/gdb/probe.c 2012/07/18 16:20:43 1.5
|
|
||||||
@@ -637,7 +637,7 @@
|
|
||||||
{
|
|
||||||
struct probe *probe;
|
|
||||||
const struct sym_probe_fns *probe_fns;
|
|
||||||
- unsigned n_probes;
|
|
||||||
+ unsigned n_args;
|
|
||||||
|
|
||||||
probe = find_probe_by_pc (get_frame_pc (frame));
|
|
||||||
if (!probe)
|
|
||||||
@@ -648,9 +648,9 @@
|
|
||||||
gdb_assert (probe->objfile->sf->sym_probe_fns != NULL);
|
|
||||||
|
|
||||||
probe_fns = probe->objfile->sf->sym_probe_fns;
|
|
||||||
- n_probes = probe_fns->sym_get_probe_argument_count (probe);
|
|
||||||
+ n_args = probe_fns->sym_get_probe_argument_count (probe);
|
|
||||||
|
|
||||||
- if (n >= n_probes)
|
|
||||||
+ if (n >= n_args)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
return probe_fns->sym_evaluate_probe_argument (probe, n);
|
|
||||||
--- src/gdb/stap-probe.c 2012/07/18 16:12:17 1.5
|
|
||||||
+++ src/gdb/stap-probe.c 2012/07/18 16:20:43 1.6
|
|
||||||
@@ -1160,7 +1160,7 @@
|
|
||||||
int sel = (int) (uintptr_t) data;
|
|
||||||
struct probe *pc_probe;
|
|
||||||
const struct sym_probe_fns *pc_probe_fns;
|
|
||||||
- int n_probes;
|
|
||||||
+ int n_args;
|
|
||||||
|
|
||||||
/* SEL == -1 means "_probe_argc". */
|
|
||||||
gdb_assert (sel >= -1);
|
|
||||||
@@ -1175,20 +1175,20 @@
|
|
||||||
|
|
||||||
pc_probe_fns = pc_probe->objfile->sf->sym_probe_fns;
|
|
||||||
|
|
||||||
- n_probes = pc_probe_fns->sym_get_probe_argument_count (pc_probe);
|
|
||||||
+ n_args = pc_probe_fns->sym_get_probe_argument_count (pc_probe);
|
|
||||||
|
|
||||||
if (sel == -1)
|
|
||||||
{
|
|
||||||
value->kind = axs_rvalue;
|
|
||||||
value->type = builtin_type (expr->gdbarch)->builtin_int;
|
|
||||||
- ax_const_l (expr, n_probes);
|
|
||||||
+ ax_const_l (expr, n_args);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
gdb_assert (sel >= 0);
|
|
||||||
- if (sel >= n_probes)
|
|
||||||
+ if (sel >= n_args)
|
|
||||||
error (_("Invalid probe argument %d -- probe has %d arguments available"),
|
|
||||||
- sel, n_probes);
|
|
||||||
+ sel, n_args);
|
|
||||||
|
|
||||||
pc_probe_fns->sym_compile_to_ax (pc_probe, expr, value, sel);
|
|
||||||
}
|
|
@ -81,11 +81,11 @@ gdb/testsuite
|
|||||||
* gdb.base/break-dlmopen.c: Likewise.
|
* gdb.base/break-dlmopen.c: Likewise.
|
||||||
* gdb.base/break-dlmopen-solib.c: Likewise.
|
* gdb.base/break-dlmopen-solib.c: Likewise.
|
||||||
|
|
||||||
Index: gdb-7.4.91.20120814/gdb/breakpoint.h
|
Index: gdb-7.5.50.20130118/gdb/breakpoint.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.91.20120814.orig/gdb/breakpoint.h 2012-08-14 17:31:37.050984427 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/breakpoint.h 2013-01-18 23:57:14.782978485 +0100
|
||||||
+++ gdb-7.4.91.20120814/gdb/breakpoint.h 2012-08-14 17:34:44.203746601 +0200
|
+++ gdb-7.5.50.20130118/gdb/breakpoint.h 2013-01-18 23:57:50.511792890 +0100
|
||||||
@@ -1515,8 +1515,6 @@ extern int user_breakpoint_p (struct bre
|
@@ -1548,8 +1548,6 @@ extern int user_breakpoint_p (struct bre
|
||||||
/* Attempt to determine architecture of location identified by SAL. */
|
/* Attempt to determine architecture of location identified by SAL. */
|
||||||
extern struct gdbarch *get_sal_arch (struct symtab_and_line sal);
|
extern struct gdbarch *get_sal_arch (struct symtab_and_line sal);
|
||||||
|
|
||||||
@ -94,11 +94,11 @@ Index: gdb-7.4.91.20120814/gdb/breakpoint.h
|
|||||||
extern void breakpoints_relocate (struct objfile *objfile,
|
extern void breakpoints_relocate (struct objfile *objfile,
|
||||||
struct section_offsets *delta);
|
struct section_offsets *delta);
|
||||||
|
|
||||||
Index: gdb-7.4.91.20120814/gdb/breakpoint.c
|
Index: gdb-7.5.50.20130118/gdb/breakpoint.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.91.20120814.orig/gdb/breakpoint.c 2012-08-14 17:31:37.128984404 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/breakpoint.c 2013-01-18 23:57:14.782978485 +0100
|
||||||
+++ gdb-7.4.91.20120814/gdb/breakpoint.c 2012-08-14 17:34:44.211746597 +0200
|
+++ gdb-7.5.50.20130118/gdb/breakpoint.c 2013-01-18 23:57:50.514792879 +0100
|
||||||
@@ -5205,7 +5205,7 @@ bpstat_stop_status (struct address_space
|
@@ -5254,7 +5254,7 @@ bpstat_stop_status (struct address_space
|
||||||
{
|
{
|
||||||
if (bs->breakpoint_at && bs->breakpoint_at->type == bp_shlib_event)
|
if (bs->breakpoint_at && bs->breakpoint_at->type == bp_shlib_event)
|
||||||
{
|
{
|
||||||
@ -107,7 +107,7 @@ Index: gdb-7.4.91.20120814/gdb/breakpoint.c
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5301,25 +5301,6 @@ handle_jit_event (void)
|
@@ -5350,25 +5350,6 @@ handle_jit_event (void)
|
||||||
target_terminal_inferior ();
|
target_terminal_inferior ();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -133,11 +133,11 @@ Index: gdb-7.4.91.20120814/gdb/breakpoint.c
|
|||||||
/* Prepare WHAT final decision for infrun. */
|
/* Prepare WHAT final decision for infrun. */
|
||||||
|
|
||||||
/* Decide what infrun needs to do with this bpstat. */
|
/* Decide what infrun needs to do with this bpstat. */
|
||||||
Index: gdb-7.4.91.20120814/gdb/solib.h
|
Index: gdb-7.5.50.20130118/gdb/solib.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.91.20120814.orig/gdb/solib.h 2012-02-03 16:19:37.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/solib.h 2013-01-18 23:57:14.782978485 +0100
|
||||||
+++ gdb-7.4.91.20120814/gdb/solib.h 2012-08-14 17:34:44.257746587 +0200
|
+++ gdb-7.5.50.20130118/gdb/solib.h 2013-01-18 23:57:50.515792875 +0100
|
||||||
@@ -21,6 +21,9 @@
|
@@ -20,6 +20,9 @@
|
||||||
#ifndef SOLIB_H
|
#ifndef SOLIB_H
|
||||||
#define SOLIB_H
|
#define SOLIB_H
|
||||||
|
|
||||||
@ -147,7 +147,7 @@ Index: gdb-7.4.91.20120814/gdb/solib.h
|
|||||||
/* Forward decl's for prototypes */
|
/* Forward decl's for prototypes */
|
||||||
struct so_list;
|
struct so_list;
|
||||||
struct target_ops;
|
struct target_ops;
|
||||||
@@ -91,4 +94,15 @@ extern CORE_ADDR gdb_bfd_lookup_symbol_f
|
@@ -90,4 +93,15 @@ extern CORE_ADDR gdb_bfd_lookup_symbol_f
|
||||||
void *),
|
void *),
|
||||||
void *data);
|
void *data);
|
||||||
|
|
||||||
@ -163,11 +163,11 @@ Index: gdb-7.4.91.20120814/gdb/solib.h
|
|||||||
+extern void update_solib_breakpoints (void);
|
+extern void update_solib_breakpoints (void);
|
||||||
+
|
+
|
||||||
#endif /* SOLIB_H */
|
#endif /* SOLIB_H */
|
||||||
Index: gdb-7.4.91.20120814/gdb/solib.c
|
Index: gdb-7.5.50.20130118/gdb/solib.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.91.20120814.orig/gdb/solib.c 2012-08-14 17:31:36.832984492 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/solib.c 2013-01-18 23:57:14.782978485 +0100
|
||||||
+++ gdb-7.4.91.20120814/gdb/solib.c 2012-08-14 17:34:44.272746583 +0200
|
+++ gdb-7.5.50.20130118/gdb/solib.c 2013-01-18 23:58:09.144716601 +0100
|
||||||
@@ -1226,6 +1226,42 @@ no_shared_libraries (char *ignored, int
|
@@ -1221,6 +1221,42 @@ no_shared_libraries (char *ignored, int
|
||||||
objfile_purge_solibs ();
|
objfile_purge_solibs ();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -176,7 +176,7 @@ Index: gdb-7.4.91.20120814/gdb/solib.c
|
|||||||
+void
|
+void
|
||||||
+handle_solib_event (bpstat bs)
|
+handle_solib_event (bpstat bs)
|
||||||
+{
|
+{
|
||||||
+ struct target_so_ops *ops = solib_ops (target_gdbarch);
|
+ struct target_so_ops *ops = solib_ops (target_gdbarch ());
|
||||||
+
|
+
|
||||||
+ if (ops->handle_solib_event != NULL)
|
+ if (ops->handle_solib_event != NULL)
|
||||||
+ ops->handle_solib_event (bs);
|
+ ops->handle_solib_event (bs);
|
||||||
@ -200,7 +200,7 @@ Index: gdb-7.4.91.20120814/gdb/solib.c
|
|||||||
+void
|
+void
|
||||||
+update_solib_breakpoints (void)
|
+update_solib_breakpoints (void)
|
||||||
+{
|
+{
|
||||||
+ struct target_so_ops *ops = solib_ops (target_gdbarch);
|
+ struct target_so_ops *ops = solib_ops (target_gdbarch ());
|
||||||
+
|
+
|
||||||
+ if (ops->update_breakpoints != NULL)
|
+ if (ops->update_breakpoints != NULL)
|
||||||
+ ops->update_breakpoints ();
|
+ ops->update_breakpoints ();
|
||||||
@ -210,11 +210,11 @@ Index: gdb-7.4.91.20120814/gdb/solib.c
|
|||||||
/* Reload shared libraries, but avoid reloading the same symbol file
|
/* Reload shared libraries, but avoid reloading the same symbol file
|
||||||
we already have loaded. */
|
we already have loaded. */
|
||||||
|
|
||||||
Index: gdb-7.4.91.20120814/gdb/solist.h
|
Index: gdb-7.5.50.20130118/gdb/solist.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.91.20120814.orig/gdb/solist.h 2012-01-04 09:17:11.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/solist.h 2013-01-18 23:57:14.782978485 +0100
|
||||||
+++ gdb-7.4.91.20120814/gdb/solist.h 2012-08-14 17:34:44.273746584 +0200
|
+++ gdb-7.5.50.20130118/gdb/solist.h 2013-01-18 23:57:50.515792875 +0100
|
||||||
@@ -23,6 +23,8 @@
|
@@ -22,6 +22,8 @@
|
||||||
#define SO_NAME_MAX_PATH_SIZE 512 /* FIXME: Should be dynamic */
|
#define SO_NAME_MAX_PATH_SIZE 512 /* FIXME: Should be dynamic */
|
||||||
/* For domain_enum domain. */
|
/* For domain_enum domain. */
|
||||||
#include "symtab.h"
|
#include "symtab.h"
|
||||||
@ -223,7 +223,7 @@ Index: gdb-7.4.91.20120814/gdb/solist.h
|
|||||||
|
|
||||||
/* Forward declaration for target specific link map information. This
|
/* Forward declaration for target specific link map information. This
|
||||||
struct is opaque to all but the target specific file. */
|
struct is opaque to all but the target specific file. */
|
||||||
@@ -149,6 +151,20 @@ struct target_so_ops
|
@@ -148,6 +150,20 @@ struct target_so_ops
|
||||||
core file (in particular, for readonly sections). */
|
core file (in particular, for readonly sections). */
|
||||||
int (*keep_data_in_core) (CORE_ADDR vaddr,
|
int (*keep_data_in_core) (CORE_ADDR vaddr,
|
||||||
unsigned long size);
|
unsigned long size);
|
||||||
@ -244,11 +244,11 @@ Index: gdb-7.4.91.20120814/gdb/solist.h
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* Free the memory associated with a (so_list *). */
|
/* Free the memory associated with a (so_list *). */
|
||||||
Index: gdb-7.4.91.20120814/gdb/infrun.c
|
Index: gdb-7.5.50.20130118/gdb/infrun.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.91.20120814.orig/gdb/infrun.c 2012-08-14 17:33:16.249955007 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/infrun.c 2013-01-18 23:57:14.782978485 +0100
|
||||||
+++ gdb-7.4.91.20120814/gdb/infrun.c 2012-08-14 17:34:44.276746583 +0200
|
+++ gdb-7.5.50.20130118/gdb/infrun.c 2013-01-18 23:57:50.517792865 +0100
|
||||||
@@ -361,6 +361,16 @@ static struct symbol *step_start_functio
|
@@ -369,6 +369,16 @@ static struct symbol *step_start_functio
|
||||||
/* Nonzero if we want to give control to the user when we're notified
|
/* Nonzero if we want to give control to the user when we're notified
|
||||||
of shared library events by the dynamic linker. */
|
of shared library events by the dynamic linker. */
|
||||||
int stop_on_solib_events;
|
int stop_on_solib_events;
|
||||||
@ -265,7 +265,7 @@ Index: gdb-7.4.91.20120814/gdb/infrun.c
|
|||||||
static void
|
static void
|
||||||
show_stop_on_solib_events (struct ui_file *file, int from_tty,
|
show_stop_on_solib_events (struct ui_file *file, int from_tty,
|
||||||
struct cmd_list_element *c, const char *value)
|
struct cmd_list_element *c, const char *value)
|
||||||
@@ -3321,7 +3331,7 @@ handle_inferior_event (struct execution_
|
@@ -3347,7 +3357,7 @@ handle_inferior_event (struct execution_
|
||||||
context_switch (ecs->ptid);
|
context_switch (ecs->ptid);
|
||||||
regcache = get_thread_regcache (ecs->ptid);
|
regcache = get_thread_regcache (ecs->ptid);
|
||||||
|
|
||||||
@ -274,7 +274,7 @@ Index: gdb-7.4.91.20120814/gdb/infrun.c
|
|||||||
|
|
||||||
ecs->event_thread->control.stop_bpstat
|
ecs->event_thread->control.stop_bpstat
|
||||||
= bpstat_stop_status (get_regcache_aspace (regcache),
|
= bpstat_stop_status (get_regcache_aspace (regcache),
|
||||||
@@ -7226,7 +7236,7 @@ Show stopping for shared library events.
|
@@ -7327,7 +7337,7 @@ Show stopping for shared library events.
|
||||||
If nonzero, gdb will give control to the user when the dynamic linker\n\
|
If nonzero, gdb will give control to the user when the dynamic linker\n\
|
||||||
notifies gdb of shared library events. The most common event of interest\n\
|
notifies gdb of shared library events. The most common event of interest\n\
|
||||||
to the user would be loading/unloading of a new library."),
|
to the user would be loading/unloading of a new library."),
|
||||||
@ -283,11 +283,11 @@ Index: gdb-7.4.91.20120814/gdb/infrun.c
|
|||||||
show_stop_on_solib_events,
|
show_stop_on_solib_events,
|
||||||
&setlist, &showlist);
|
&setlist, &showlist);
|
||||||
|
|
||||||
Index: gdb-7.4.91.20120814/gdb/solib-svr4.c
|
Index: gdb-7.5.50.20130118/gdb/solib-svr4.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.91.20120814.orig/gdb/solib-svr4.c 2012-08-14 17:34:39.346752840 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/solib-svr4.c 2013-01-18 23:57:45.430815943 +0100
|
||||||
+++ gdb-7.4.91.20120814/gdb/solib-svr4.c 2012-08-14 17:35:42.635732596 +0200
|
+++ gdb-7.5.50.20130118/gdb/solib-svr4.c 2013-01-18 23:57:50.519792858 +0100
|
||||||
@@ -47,10 +47,12 @@
|
@@ -46,10 +46,12 @@
|
||||||
#include "auxv.h"
|
#include "auxv.h"
|
||||||
#include "exceptions.h"
|
#include "exceptions.h"
|
||||||
#include "gdb_bfd.h"
|
#include "gdb_bfd.h"
|
||||||
@ -300,7 +300,7 @@ Index: gdb-7.4.91.20120814/gdb/solib-svr4.c
|
|||||||
|
|
||||||
/* Link map info to include in an allocated so_list entry. */
|
/* Link map info to include in an allocated so_list entry. */
|
||||||
|
|
||||||
@@ -71,6 +73,16 @@ struct lm_info
|
@@ -70,6 +72,16 @@ struct lm_info
|
||||||
|
|
||||||
/* Values read in from inferior's fields of the same name. */
|
/* Values read in from inferior's fields of the same name. */
|
||||||
CORE_ADDR l_ld, l_next, l_prev, l_name;
|
CORE_ADDR l_ld, l_next, l_prev, l_name;
|
||||||
@ -317,7 +317,7 @@ Index: gdb-7.4.91.20120814/gdb/solib-svr4.c
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* On SVR4 systems, a list of symbols in the dynamic linker where
|
/* On SVR4 systems, a list of symbols in the dynamic linker where
|
||||||
@@ -107,6 +119,53 @@ static const char * const main_name_lis
|
@@ -106,6 +118,53 @@ static const char * const main_name_lis
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -371,7 +371,7 @@ Index: gdb-7.4.91.20120814/gdb/solib-svr4.c
|
|||||||
/* Per pspace SVR4 specific data. */
|
/* Per pspace SVR4 specific data. */
|
||||||
|
|
||||||
struct svr4_info
|
struct svr4_info
|
||||||
@@ -129,17 +188,58 @@ struct svr4_info
|
@@ -128,17 +187,58 @@ struct svr4_info
|
||||||
CORE_ADDR interp_text_sect_high;
|
CORE_ADDR interp_text_sect_high;
|
||||||
CORE_ADDR interp_plt_sect_low;
|
CORE_ADDR interp_plt_sect_low;
|
||||||
CORE_ADDR interp_plt_sect_high;
|
CORE_ADDR interp_plt_sect_high;
|
||||||
@ -430,7 +430,7 @@ Index: gdb-7.4.91.20120814/gdb/solib-svr4.c
|
|||||||
xfree (info);
|
xfree (info);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -188,10 +288,21 @@ svr4_same_1 (const char *gdb_so_name, co
|
@@ -187,10 +287,21 @@ svr4_same_1 (const char *gdb_so_name, co
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -453,7 +453,7 @@ Index: gdb-7.4.91.20120814/gdb/solib-svr4.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
static struct lm_info *
|
static struct lm_info *
|
||||||
@@ -322,18 +433,26 @@ lm_addr_check (struct so_list *so, bfd *
|
@@ -321,18 +432,26 @@ lm_addr_check (struct so_list *so, bfd *
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -492,7 +492,7 @@ Index: gdb-7.4.91.20120814/gdb/solib-svr4.c
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -775,16 +894,10 @@ locate_base (struct svr4_info *info)
|
@@ -774,16 +893,10 @@ locate_base (struct svr4_info *info)
|
||||||
return info->debug_base;
|
return info->debug_base;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -510,8 +510,8 @@ Index: gdb-7.4.91.20120814/gdb/solib-svr4.c
|
|||||||
+r_map_from_debug_base (CORE_ADDR debug_base)
|
+r_map_from_debug_base (CORE_ADDR debug_base)
|
||||||
{
|
{
|
||||||
struct link_map_offsets *lmo = svr4_fetch_link_map_offsets ();
|
struct link_map_offsets *lmo = svr4_fetch_link_map_offsets ();
|
||||||
struct type *ptr_type = builtin_type (target_gdbarch)->builtin_data_ptr;
|
struct type *ptr_type = builtin_type (target_gdbarch ())->builtin_data_ptr;
|
||||||
@@ -793,13 +906,27 @@ solib_svr4_r_map (struct svr4_info *info
|
@@ -792,13 +905,27 @@ solib_svr4_r_map (struct svr4_info *info
|
||||||
|
|
||||||
TRY_CATCH (ex, RETURN_MASK_ERROR)
|
TRY_CATCH (ex, RETURN_MASK_ERROR)
|
||||||
{
|
{
|
||||||
@ -540,7 +540,7 @@ Index: gdb-7.4.91.20120814/gdb/solib-svr4.c
|
|||||||
/* Find r_brk from the inferior's debug base. */
|
/* Find r_brk from the inferior's debug base. */
|
||||||
|
|
||||||
static CORE_ADDR
|
static CORE_ADDR
|
||||||
@@ -1164,15 +1291,17 @@ svr4_default_sos (void)
|
@@ -1163,15 +1290,17 @@ svr4_default_sos (void)
|
||||||
return new;
|
return new;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -565,7 +565,7 @@ Index: gdb-7.4.91.20120814/gdb/solib-svr4.c
|
|||||||
|
|
||||||
for (; lm != 0; prev_lm = lm, lm = next_lm)
|
for (; lm != 0; prev_lm = lm, lm = next_lm)
|
||||||
{
|
{
|
||||||
@@ -1189,7 +1318,7 @@ svr4_read_so_list (CORE_ADDR lm, struct
|
@@ -1188,7 +1317,7 @@ svr4_read_so_list (CORE_ADDR lm, struct
|
||||||
if (new->lm_info == NULL)
|
if (new->lm_info == NULL)
|
||||||
{
|
{
|
||||||
do_cleanups (old_chain);
|
do_cleanups (old_chain);
|
||||||
@ -574,16 +574,16 @@ Index: gdb-7.4.91.20120814/gdb/solib-svr4.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
next_lm = new->lm_info->l_next;
|
next_lm = new->lm_info->l_next;
|
||||||
@@ -1200,7 +1329,7 @@ svr4_read_so_list (CORE_ADDR lm, struct
|
@@ -1199,7 +1328,7 @@ svr4_read_so_list (CORE_ADDR lm, struct
|
||||||
paddress (target_gdbarch, prev_lm),
|
paddress (target_gdbarch (), prev_lm),
|
||||||
paddress (target_gdbarch, new->lm_info->l_prev));
|
paddress (target_gdbarch (), new->lm_info->l_prev));
|
||||||
do_cleanups (old_chain);
|
do_cleanups (old_chain);
|
||||||
- break;
|
- break;
|
||||||
+ return 0;
|
+ return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* For SVR4 versions, the first entry in the link map is for the
|
/* For SVR4 versions, the first entry in the link map is for the
|
||||||
@@ -1295,20 +1424,61 @@ svr4_read_so_list (CORE_ADDR lm, struct
|
@@ -1294,20 +1423,61 @@ svr4_read_so_list (CORE_ADDR lm, struct
|
||||||
**link_ptr_ptr = new;
|
**link_ptr_ptr = new;
|
||||||
*link_ptr_ptr = &new->next;
|
*link_ptr_ptr = &new->next;
|
||||||
}
|
}
|
||||||
@ -648,7 +648,7 @@ Index: gdb-7.4.91.20120814/gdb/solib-svr4.c
|
|||||||
|
|
||||||
/* Fall back to manual examination of the target if the packet is not
|
/* Fall back to manual examination of the target if the packet is not
|
||||||
supported or gdbserver failed to find DT_DEBUG. gdb.server/solib-list.exp
|
supported or gdbserver failed to find DT_DEBUG. gdb.server/solib-list.exp
|
||||||
@@ -1331,6 +1501,10 @@ svr4_current_sos (void)
|
@@ -1330,6 +1500,10 @@ svr4_current_sos (void)
|
||||||
|
|
||||||
info = get_svr4_info ();
|
info = get_svr4_info ();
|
||||||
|
|
||||||
@ -659,7 +659,7 @@ Index: gdb-7.4.91.20120814/gdb/solib-svr4.c
|
|||||||
/* Always locate the debug struct, in case it has moved. */
|
/* Always locate the debug struct, in case it has moved. */
|
||||||
info->debug_base = 0;
|
info->debug_base = 0;
|
||||||
locate_base (info);
|
locate_base (info);
|
||||||
@@ -1340,35 +1514,12 @@ svr4_current_sos (void)
|
@@ -1339,35 +1513,12 @@ svr4_current_sos (void)
|
||||||
if (! info->debug_base)
|
if (! info->debug_base)
|
||||||
return svr4_default_sos ();
|
return svr4_default_sos ();
|
||||||
|
|
||||||
@ -698,8 +698,8 @@ Index: gdb-7.4.91.20120814/gdb/solib-svr4.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Get the address of the link_map for a given OBJFILE. */
|
/* Get the address of the link_map for a given OBJFILE. */
|
||||||
@@ -1450,6 +1601,498 @@ exec_entry_point (struct bfd *abfd, stru
|
@@ -1452,6 +1603,498 @@ exec_entry_point (struct bfd *abfd, stru
|
||||||
targ);
|
return gdbarch_addr_bits_remove (target_gdbarch (), addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
+/* A probe and its associated information structure. */
|
+/* A probe and its associated information structure. */
|
||||||
@ -1197,7 +1197,7 @@ Index: gdb-7.4.91.20120814/gdb/solib-svr4.c
|
|||||||
/* Helper function for gdb_bfd_lookup_symbol. */
|
/* Helper function for gdb_bfd_lookup_symbol. */
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@@ -1502,6 +2145,9 @@ enable_break (struct svr4_info *info, in
|
@@ -1504,6 +2147,9 @@ enable_break (struct svr4_info *info, in
|
||||||
info->interp_text_sect_low = info->interp_text_sect_high = 0;
|
info->interp_text_sect_low = info->interp_text_sect_high = 0;
|
||||||
info->interp_plt_sect_low = info->interp_plt_sect_high = 0;
|
info->interp_plt_sect_low = info->interp_plt_sect_high = 0;
|
||||||
|
|
||||||
@ -1207,7 +1207,7 @@ Index: gdb-7.4.91.20120814/gdb/solib-svr4.c
|
|||||||
/* If we already have a shared library list in the target, and
|
/* If we already have a shared library list in the target, and
|
||||||
r_debug contains r_brk, set the breakpoint there - this should
|
r_debug contains r_brk, set the breakpoint there - this should
|
||||||
mean r_brk has already been relocated. Assume the dynamic linker
|
mean r_brk has already been relocated. Assume the dynamic linker
|
||||||
@@ -1533,7 +2179,7 @@ enable_break (struct svr4_info *info, in
|
@@ -1535,7 +2181,7 @@ enable_break (struct svr4_info *info, in
|
||||||
That knowledge is encoded in the address, if it's Thumb the low bit
|
That knowledge is encoded in the address, if it's Thumb the low bit
|
||||||
is 1. However, we've stripped that info above and it's not clear
|
is 1. However, we've stripped that info above and it's not clear
|
||||||
what all the consequences are of passing a non-addr_bits_remove'd
|
what all the consequences are of passing a non-addr_bits_remove'd
|
||||||
@ -1216,44 +1216,44 @@ Index: gdb-7.4.91.20120814/gdb/solib-svr4.c
|
|||||||
find_pc_section verifies we know about the address and have some
|
find_pc_section verifies we know about the address and have some
|
||||||
hope of computing the right kind of breakpoint to use (via
|
hope of computing the right kind of breakpoint to use (via
|
||||||
symbol info). It does mean that GDB needs to be pointed at a
|
symbol info). It does mean that GDB needs to be pointed at a
|
||||||
@@ -1571,7 +2217,7 @@ enable_break (struct svr4_info *info, in
|
@@ -1573,7 +2219,7 @@ enable_break (struct svr4_info *info, in
|
||||||
+ bfd_section_size (tmp_bfd, interp_sect);
|
+ bfd_section_size (tmp_bfd, interp_sect);
|
||||||
}
|
}
|
||||||
|
|
||||||
- create_solib_event_breakpoint (target_gdbarch, sym_addr);
|
- create_solib_event_breakpoint (target_gdbarch (), sym_addr);
|
||||||
+ svr4_create_solib_event_breakpoints (target_gdbarch, sym_addr);
|
+ svr4_create_solib_event_breakpoints (target_gdbarch (), sym_addr);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1729,7 +2375,8 @@ enable_break (struct svr4_info *info, in
|
@@ -1731,7 +2377,8 @@ enable_break (struct svr4_info *info, in
|
||||||
|
|
||||||
if (sym_addr != 0)
|
if (sym_addr != 0)
|
||||||
{
|
{
|
||||||
- create_solib_event_breakpoint (target_gdbarch, load_addr + sym_addr);
|
- create_solib_event_breakpoint (target_gdbarch (), load_addr + sym_addr);
|
||||||
+ svr4_create_solib_event_breakpoints (target_gdbarch,
|
+ svr4_create_solib_event_breakpoints (target_gdbarch (),
|
||||||
+ load_addr + sym_addr);
|
+ load_addr + sym_addr);
|
||||||
xfree (interp_name);
|
xfree (interp_name);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@@ -1755,7 +2402,7 @@ enable_break (struct svr4_info *info, in
|
@@ -1757,7 +2404,7 @@ enable_break (struct svr4_info *info, in
|
||||||
sym_addr = gdbarch_convert_from_func_ptr_addr (target_gdbarch,
|
sym_addr = gdbarch_convert_from_func_ptr_addr (target_gdbarch (),
|
||||||
sym_addr,
|
sym_addr,
|
||||||
¤t_target);
|
¤t_target);
|
||||||
- create_solib_event_breakpoint (target_gdbarch, sym_addr);
|
- create_solib_event_breakpoint (target_gdbarch (), sym_addr);
|
||||||
+ svr4_create_solib_event_breakpoints (target_gdbarch, sym_addr);
|
+ svr4_create_solib_event_breakpoints (target_gdbarch (), sym_addr);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1771,7 +2418,7 @@ enable_break (struct svr4_info *info, in
|
@@ -1773,7 +2420,7 @@ enable_break (struct svr4_info *info, in
|
||||||
sym_addr = gdbarch_convert_from_func_ptr_addr (target_gdbarch,
|
sym_addr = gdbarch_convert_from_func_ptr_addr (target_gdbarch (),
|
||||||
sym_addr,
|
sym_addr,
|
||||||
¤t_target);
|
¤t_target);
|
||||||
- create_solib_event_breakpoint (target_gdbarch, sym_addr);
|
- create_solib_event_breakpoint (target_gdbarch (), sym_addr);
|
||||||
+ svr4_create_solib_event_breakpoints (target_gdbarch, sym_addr);
|
+ svr4_create_solib_event_breakpoints (target_gdbarch (), sym_addr);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2281,6 +2928,9 @@ svr4_solib_create_inferior_hook (int fro
|
@@ -2269,6 +2916,9 @@ svr4_solib_create_inferior_hook (int fro
|
||||||
|
|
||||||
info = get_svr4_info ();
|
info = get_svr4_info ();
|
||||||
|
|
||||||
@ -1263,17 +1263,17 @@ Index: gdb-7.4.91.20120814/gdb/solib-svr4.c
|
|||||||
/* Relocate the main executable if necessary. */
|
/* Relocate the main executable if necessary. */
|
||||||
svr4_relocate_main_executable ();
|
svr4_relocate_main_executable ();
|
||||||
|
|
||||||
@@ -2547,4 +3197,6 @@ _initialize_svr4_solib (void)
|
@@ -2510,4 +3160,6 @@ _initialize_svr4_solib (void)
|
||||||
svr4_so_ops.lookup_lib_global_symbol = elf_lookup_lib_symbol;
|
svr4_so_ops.lookup_lib_global_symbol = elf_lookup_lib_symbol;
|
||||||
svr4_so_ops.same = svr4_same;
|
svr4_so_ops.same = svr4_same;
|
||||||
svr4_so_ops.keep_data_in_core = svr4_keep_data_in_core;
|
svr4_so_ops.keep_data_in_core = svr4_keep_data_in_core;
|
||||||
+ svr4_so_ops.handle_solib_event = svr4_handle_solib_event;
|
+ svr4_so_ops.handle_solib_event = svr4_handle_solib_event;
|
||||||
+ svr4_so_ops.update_breakpoints = svr4_update_solib_event_breakpoints;
|
+ svr4_so_ops.update_breakpoints = svr4_update_solib_event_breakpoints;
|
||||||
}
|
}
|
||||||
Index: gdb-7.4.91.20120814/gdb/testsuite/gdb.base/break-dlmopen-solib.c
|
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-dlmopen-solib.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ gdb-7.4.91.20120814/gdb/testsuite/gdb.base/break-dlmopen-solib.c 2012-08-14 17:34:44.330746591 +0200
|
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-dlmopen-solib.c 2013-01-18 23:57:50.519792858 +0100
|
||||||
@@ -0,0 +1,24 @@
|
@@ -0,0 +1,24 @@
|
||||||
+/* Copyright 2012 Free Software Foundation, Inc.
|
+/* Copyright 2012 Free Software Foundation, Inc.
|
||||||
+
|
+
|
||||||
@ -1299,10 +1299,10 @@ Index: gdb-7.4.91.20120814/gdb/testsuite/gdb.base/break-dlmopen-solib.c
|
|||||||
+
|
+
|
||||||
+ return 0;
|
+ return 0;
|
||||||
+}
|
+}
|
||||||
Index: gdb-7.4.91.20120814/gdb/testsuite/gdb.base/break-dlmopen.c
|
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-dlmopen.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ gdb-7.4.91.20120814/gdb/testsuite/gdb.base/break-dlmopen.c 2012-08-14 17:34:44.339746576 +0200
|
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-dlmopen.c 2013-01-18 23:57:50.519792858 +0100
|
||||||
@@ -0,0 +1,58 @@
|
@@ -0,0 +1,58 @@
|
||||||
+/* Copyright 2012 Free Software Foundation, Inc.
|
+/* Copyright 2012 Free Software Foundation, Inc.
|
||||||
+
|
+
|
||||||
@ -1362,10 +1362,10 @@ Index: gdb-7.4.91.20120814/gdb/testsuite/gdb.base/break-dlmopen.c
|
|||||||
+
|
+
|
||||||
+ return 0;
|
+ return 0;
|
||||||
+}
|
+}
|
||||||
Index: gdb-7.4.91.20120814/gdb/testsuite/gdb.base/break-dlmopen.exp
|
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-dlmopen.exp
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ gdb-7.4.91.20120814/gdb/testsuite/gdb.base/break-dlmopen.exp 2012-08-14 17:34:44.343746563 +0200
|
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-dlmopen.exp 2013-01-18 23:57:50.519792858 +0100
|
||||||
@@ -0,0 +1,125 @@
|
@@ -0,0 +1,125 @@
|
||||||
+# Copyright 2012 Free Software Foundation, Inc.
|
+# Copyright 2012 Free Software Foundation, Inc.
|
||||||
+
|
+
|
||||||
@ -1492,10 +1492,10 @@ Index: gdb-7.4.91.20120814/gdb/testsuite/gdb.base/break-dlmopen.exp
|
|||||||
+ gdb_test "c" {Breakpoint [0-9]+, .* in stop \(\)}
|
+ gdb_test "c" {Breakpoint [0-9]+, .* in stop \(\)}
|
||||||
+ check_info_shared "info sharedlibrary #7" 0
|
+ check_info_shared "info sharedlibrary #7" 0
|
||||||
+}
|
+}
|
||||||
Index: gdb-7.4.91.20120814/gdb/testsuite/gdb.base/break-interp.exp
|
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-interp.exp
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.91.20120814.orig/gdb/testsuite/gdb.base/break-interp.exp 2012-06-21 22:46:21.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.base/break-interp.exp 2013-01-18 23:57:14.782978485 +0100
|
||||||
+++ gdb-7.4.91.20120814/gdb/testsuite/gdb.base/break-interp.exp 2012-08-14 17:34:44.344746565 +0200
|
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-interp.exp 2013-01-18 23:57:50.520792854 +0100
|
||||||
@@ -109,12 +109,19 @@ proc strip_debug {dest} {
|
@@ -109,12 +109,19 @@ proc strip_debug {dest} {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1591,10 +1591,10 @@ Index: gdb-7.4.91.20120814/gdb/testsuite/gdb.base/break-interp.exp
|
|||||||
|
|
||||||
# Use two separate gdb_test_multiple statements to avoid timeouts due
|
# Use two separate gdb_test_multiple statements to avoid timeouts due
|
||||||
# to slow processing of wildcard capturing long output
|
# to slow processing of wildcard capturing long output
|
||||||
Index: gdb-7.4.91.20120814/gdb/testsuite/gdb.base/break-probes-solib.c
|
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-probes-solib.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ gdb-7.4.91.20120814/gdb/testsuite/gdb.base/break-probes-solib.c 2012-08-14 17:34:44.355746561 +0200
|
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-probes-solib.c 2013-01-18 23:57:50.520792854 +0100
|
||||||
@@ -0,0 +1,24 @@
|
@@ -0,0 +1,24 @@
|
||||||
+/* Copyright 2012 Free Software Foundation, Inc.
|
+/* Copyright 2012 Free Software Foundation, Inc.
|
||||||
+
|
+
|
||||||
@ -1620,10 +1620,10 @@ Index: gdb-7.4.91.20120814/gdb/testsuite/gdb.base/break-probes-solib.c
|
|||||||
+
|
+
|
||||||
+ return 0;
|
+ return 0;
|
||||||
+}
|
+}
|
||||||
Index: gdb-7.4.91.20120814/gdb/testsuite/gdb.base/break-probes.c
|
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-probes.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ gdb-7.4.91.20120814/gdb/testsuite/gdb.base/break-probes.c 2012-08-14 17:34:44.362746561 +0200
|
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-probes.c 2013-01-18 23:57:50.520792854 +0100
|
||||||
@@ -0,0 +1,26 @@
|
@@ -0,0 +1,26 @@
|
||||||
+/* Copyright 2012 Free Software Foundation, Inc.
|
+/* Copyright 2012 Free Software Foundation, Inc.
|
||||||
+
|
+
|
||||||
@ -1651,10 +1651,10 @@ Index: gdb-7.4.91.20120814/gdb/testsuite/gdb.base/break-probes.c
|
|||||||
+
|
+
|
||||||
+ return 0;
|
+ return 0;
|
||||||
+}
|
+}
|
||||||
Index: gdb-7.4.91.20120814/gdb/testsuite/gdb.base/break-probes.exp
|
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-probes.exp
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ gdb-7.4.91.20120814/gdb/testsuite/gdb.base/break-probes.exp 2012-08-14 17:34:44.363746561 +0200
|
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-probes.exp 2013-01-18 23:57:50.520792854 +0100
|
||||||
@@ -0,0 +1,76 @@
|
@@ -0,0 +1,76 @@
|
||||||
+# Copyright 2012 Free Software Foundation, Inc.
|
+# Copyright 2012 Free Software Foundation, Inc.
|
||||||
+
|
+
|
||||||
@ -1732,10 +1732,10 @@ Index: gdb-7.4.91.20120814/gdb/testsuite/gdb.base/break-probes.exp
|
|||||||
+ # Call something to ensure that relocation occurred
|
+ # Call something to ensure that relocation occurred
|
||||||
+ gdb_test "call foo(23)" "foo 23.*\\\$.* = .*"
|
+ gdb_test "call foo(23)" "foo 23.*\\\$.* = .*"
|
||||||
+}
|
+}
|
||||||
Index: gdb-7.4.91.20120814/gdb/testsuite/gdb.base/info-shared-solib1.c
|
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/info-shared-solib1.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ gdb-7.4.91.20120814/gdb/testsuite/gdb.base/info-shared-solib1.c 2012-08-14 17:34:44.365746561 +0200
|
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/info-shared-solib1.c 2013-01-18 23:57:50.520792854 +0100
|
||||||
@@ -0,0 +1,24 @@
|
@@ -0,0 +1,24 @@
|
||||||
+/* Copyright 2012 Free Software Foundation, Inc.
|
+/* Copyright 2012 Free Software Foundation, Inc.
|
||||||
+
|
+
|
||||||
@ -1761,10 +1761,10 @@ Index: gdb-7.4.91.20120814/gdb/testsuite/gdb.base/info-shared-solib1.c
|
|||||||
+
|
+
|
||||||
+ return 0;
|
+ return 0;
|
||||||
+}
|
+}
|
||||||
Index: gdb-7.4.91.20120814/gdb/testsuite/gdb.base/info-shared-solib2.c
|
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/info-shared-solib2.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ gdb-7.4.91.20120814/gdb/testsuite/gdb.base/info-shared-solib2.c 2012-08-14 17:34:44.365746561 +0200
|
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/info-shared-solib2.c 2013-01-18 23:57:50.520792854 +0100
|
||||||
@@ -0,0 +1,24 @@
|
@@ -0,0 +1,24 @@
|
||||||
+/* Copyright 2012 Free Software Foundation, Inc.
|
+/* Copyright 2012 Free Software Foundation, Inc.
|
||||||
+
|
+
|
||||||
@ -1790,10 +1790,10 @@ Index: gdb-7.4.91.20120814/gdb/testsuite/gdb.base/info-shared-solib2.c
|
|||||||
+
|
+
|
||||||
+ return 0;
|
+ return 0;
|
||||||
+}
|
+}
|
||||||
Index: gdb-7.4.91.20120814/gdb/testsuite/gdb.base/info-shared.c
|
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/info-shared.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ gdb-7.4.91.20120814/gdb/testsuite/gdb.base/info-shared.c 2012-08-14 17:34:44.366746561 +0200
|
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/info-shared.c 2013-01-18 23:57:50.520792854 +0100
|
||||||
@@ -0,0 +1,48 @@
|
@@ -0,0 +1,48 @@
|
||||||
+/* Copyright 2012 Free Software Foundation, Inc.
|
+/* Copyright 2012 Free Software Foundation, Inc.
|
||||||
+
|
+
|
||||||
@ -1843,10 +1843,10 @@ Index: gdb-7.4.91.20120814/gdb/testsuite/gdb.base/info-shared.c
|
|||||||
+
|
+
|
||||||
+ return 0;
|
+ return 0;
|
||||||
+}
|
+}
|
||||||
Index: gdb-7.4.91.20120814/gdb/testsuite/gdb.base/info-shared.exp
|
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/info-shared.exp
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ gdb-7.4.91.20120814/gdb/testsuite/gdb.base/info-shared.exp 2012-08-14 17:34:44.367746561 +0200
|
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/info-shared.exp 2013-01-18 23:57:50.521792850 +0100
|
||||||
@@ -0,0 +1,139 @@
|
@@ -0,0 +1,139 @@
|
||||||
+# Copyright 2012 Free Software Foundation, Inc.
|
+# Copyright 2012 Free Software Foundation, Inc.
|
||||||
+
|
+
|
||||||
|
@ -13,13 +13,13 @@
|
|||||||
* solib-svr4.c (svr4_handle_solib_event): Inhibit section map
|
* solib-svr4.c (svr4_handle_solib_event): Inhibit section map
|
||||||
updates for calls to evaluate_probe_argument.
|
updates for calls to evaluate_probe_argument.
|
||||||
|
|
||||||
Index: gdb-7.4.91.20120814/gdb/objfiles.h
|
Index: gdb-7.5.50.20130118/gdb/objfiles.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.91.20120814.orig/gdb/objfiles.h 2012-08-14 17:16:54.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/objfiles.h 2013-01-18 23:18:16.862315673 +0100
|
||||||
+++ gdb-7.4.91.20120814/gdb/objfiles.h 2012-08-14 17:20:55.913174609 +0200
|
+++ gdb-7.5.50.20130118/gdb/objfiles.h 2013-01-18 23:18:36.702343482 +0100
|
||||||
@@ -526,6 +526,22 @@ extern void set_objfile_data (struct obj
|
@@ -508,6 +508,22 @@ extern int in_plt_section (CORE_ADDR, ch
|
||||||
extern void *objfile_data (struct objfile *objfile,
|
modules. */
|
||||||
const struct objfile_data *data);
|
DECLARE_REGISTRY(objfile);
|
||||||
|
|
||||||
+/* In normal use, the section map will be rebuilt by FIND_PC_SECTION
|
+/* In normal use, the section map will be rebuilt by FIND_PC_SECTION
|
||||||
+ if objfiles have been added, removed or relocated since it was last
|
+ if objfiles have been added, removed or relocated since it was last
|
||||||
@ -40,11 +40,11 @@ Index: gdb-7.4.91.20120814/gdb/objfiles.h
|
|||||||
extern void default_iterate_over_objfiles_in_search_order
|
extern void default_iterate_over_objfiles_in_search_order
|
||||||
(struct gdbarch *gdbarch,
|
(struct gdbarch *gdbarch,
|
||||||
iterate_over_objfiles_in_search_order_cb_ftype *cb,
|
iterate_over_objfiles_in_search_order_cb_ftype *cb,
|
||||||
Index: gdb-7.4.91.20120814/gdb/objfiles.c
|
Index: gdb-7.5.50.20130118/gdb/objfiles.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.91.20120814.orig/gdb/objfiles.c 2012-08-14 17:16:55.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/objfiles.c 2013-01-18 23:18:13.647311006 +0100
|
||||||
+++ gdb-7.4.91.20120814/gdb/objfiles.c 2012-08-14 17:20:55.915174609 +0200
|
+++ gdb-7.5.50.20130118/gdb/objfiles.c 2013-01-18 23:18:16.862315673 +0100
|
||||||
@@ -70,6 +70,9 @@ struct objfile_pspace_info
|
@@ -69,6 +69,9 @@ struct objfile_pspace_info
|
||||||
int objfiles_changed_p;
|
int objfiles_changed_p;
|
||||||
struct obj_section **sections;
|
struct obj_section **sections;
|
||||||
int num_sections;
|
int num_sections;
|
||||||
@ -54,7 +54,7 @@ Index: gdb-7.4.91.20120814/gdb/objfiles.c
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* Per-program-space data key. */
|
/* Per-program-space data key. */
|
||||||
@@ -1295,7 +1298,7 @@ find_pc_section (CORE_ADDR pc)
|
@@ -1356,7 +1359,7 @@ find_pc_section (CORE_ADDR pc)
|
||||||
return s;
|
return s;
|
||||||
|
|
||||||
pspace_info = get_objfile_pspace_data (current_program_space);
|
pspace_info = get_objfile_pspace_data (current_program_space);
|
||||||
@ -63,7 +63,7 @@ Index: gdb-7.4.91.20120814/gdb/objfiles.c
|
|||||||
{
|
{
|
||||||
update_section_map (current_program_space,
|
update_section_map (current_program_space,
|
||||||
&pspace_info->sections,
|
&pspace_info->sections,
|
||||||
@@ -1463,6 +1466,30 @@ objfiles_changed (void)
|
@@ -1415,6 +1418,30 @@ objfiles_changed (void)
|
||||||
get_objfile_pspace_data (current_program_space)->objfiles_changed_p = 1;
|
get_objfile_pspace_data (current_program_space)->objfiles_changed_p = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -94,11 +94,11 @@ Index: gdb-7.4.91.20120814/gdb/objfiles.c
|
|||||||
/* The default implementation for the "iterate_over_objfiles_in_search_order"
|
/* The default implementation for the "iterate_over_objfiles_in_search_order"
|
||||||
gdbarch method. It is equivalent to use the ALL_OBJFILES macro,
|
gdbarch method. It is equivalent to use the ALL_OBJFILES macro,
|
||||||
searching the objfiles in the order they are stored internally,
|
searching the objfiles in the order they are stored internally,
|
||||||
Index: gdb-7.4.91.20120814/gdb/solib-svr4.c
|
Index: gdb-7.5.50.20130118/gdb/solib-svr4.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.91.20120814.orig/gdb/solib-svr4.c 2012-08-14 17:20:42.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/solib-svr4.c 2013-01-18 23:18:13.649311010 +0100
|
||||||
+++ gdb-7.4.91.20120814/gdb/solib-svr4.c 2012-08-14 17:21:14.090169216 +0200
|
+++ gdb-7.5.50.20130118/gdb/solib-svr4.c 2013-01-18 23:18:16.863315675 +0100
|
||||||
@@ -1847,6 +1847,7 @@ svr4_handle_solib_event (bpstat bs)
|
@@ -1849,6 +1849,7 @@ svr4_handle_solib_event (bpstat bs)
|
||||||
struct svr4_info *info = get_svr4_info ();
|
struct svr4_info *info = get_svr4_info ();
|
||||||
struct probe_and_info buf, *pi = &buf;
|
struct probe_and_info buf, *pi = &buf;
|
||||||
enum probe_action action;
|
enum probe_action action;
|
||||||
@ -106,7 +106,7 @@ Index: gdb-7.4.91.20120814/gdb/solib-svr4.c
|
|||||||
struct value *val;
|
struct value *val;
|
||||||
LONGEST lmid;
|
LONGEST lmid;
|
||||||
CORE_ADDR debug_base, lm = 0;
|
CORE_ADDR debug_base, lm = 0;
|
||||||
@@ -1870,6 +1871,19 @@ svr4_handle_solib_event (bpstat bs)
|
@@ -1872,6 +1873,19 @@ svr4_handle_solib_event (bpstat bs)
|
||||||
if (action == NAMESPACE_NO_ACTION)
|
if (action == NAMESPACE_NO_ACTION)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -126,7 +126,7 @@ Index: gdb-7.4.91.20120814/gdb/solib-svr4.c
|
|||||||
val = evaluate_probe_argument (pi->probe, 0);
|
val = evaluate_probe_argument (pi->probe, 0);
|
||||||
if (val == NULL)
|
if (val == NULL)
|
||||||
goto error;
|
goto error;
|
||||||
@@ -1901,6 +1915,9 @@ svr4_handle_solib_event (bpstat bs)
|
@@ -1903,6 +1917,9 @@ svr4_handle_solib_event (bpstat bs)
|
||||||
action = NAMESPACE_RELOAD;
|
action = NAMESPACE_RELOAD;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -136,7 +136,7 @@ Index: gdb-7.4.91.20120814/gdb/solib-svr4.c
|
|||||||
if (action == NAMESPACE_UPDATE_OR_RELOAD)
|
if (action == NAMESPACE_UPDATE_OR_RELOAD)
|
||||||
{
|
{
|
||||||
if (namespace_update_incremental (info, lmid, lm, is_initial_ns))
|
if (namespace_update_incremental (info, lmid, lm, is_initial_ns))
|
||||||
@@ -1923,6 +1940,8 @@ svr4_handle_solib_event (bpstat bs)
|
@@ -1925,6 +1942,8 @@ svr4_handle_solib_event (bpstat bs)
|
||||||
warning (_("Probes-based dynamic linker interface failed.\n"
|
warning (_("Probes-based dynamic linker interface failed.\n"
|
||||||
"Reverting to original interface.\n"));
|
"Reverting to original interface.\n"));
|
||||||
|
|
||||||
|
@ -1,888 +0,0 @@
|
|||||||
http://sourceware.org/ml/gdb-patches/2012-10/msg00095.html
|
|
||||||
Subject: [patch] entry values: Fix resolving in inlined frames
|
|
||||||
|
|
||||||
Hi,
|
|
||||||
|
|
||||||
Breakpoint 1, fn2 (y=<optimized out>, x=6) at gdb.arch/amd64-entry-value-inline.c:32
|
|
||||||
32 y = -2 + x; /* break-here */
|
|
||||||
(gdb) info addr y
|
|
||||||
(gdb) bt
|
|
||||||
#0 fn2 (y=<optimized out>, x=6) at gdb.arch/amd64-entry-value-inline.c:32
|
|
||||||
#1 fn3 (x=x@entry=6, y=y@entry=25) at gdb.arch/amd64-entry-value-inline.c:42
|
|
||||||
#2 0x00000000004004af in main () at gdb.arch/amd64-entry-value-inline.c:48
|
|
||||||
(gdb) info frame
|
|
||||||
Stack level 0, frame at 0x7fffffffdb68:
|
|
||||||
rip = 0x4005bc in fn2 (gdb.arch/amd64-entry-value-inline.c:32); saved rip 0x4004af
|
|
||||||
inlined into frame 1
|
|
||||||
[...]
|
|
||||||
(gdb) set debug entry-values 1
|
|
||||||
(gdb) p y
|
|
||||||
DW_OP_GNU_entry_value resolving expects callee fn1 at 0x4005a0 but the called frame is for fn3 at 0x4005b0
|
|
||||||
|
|
||||||
FAIL:
|
|
||||||
-----
|
|
||||||
$1 = <optimized out>
|
|
||||||
PASS:
|
|
||||||
-----
|
|
||||||
$1 = 25
|
|
||||||
|
|
||||||
(gdb) p/x $pc
|
|
||||||
$2 = 0x4005bc
|
|
||||||
(gdb) up
|
|
||||||
#1 fn3 (x=x@entry=6, y=y@entry=25) at gdb.arch/amd64-entry-value-inline.c:42
|
|
||||||
(gdb) p/x $pc
|
|
||||||
$3 = 0x4005bc
|
|
||||||
|
|
||||||
The problem is that DW_TAG_GNU_call_site <-> DW_OP_GNU_entry_value binding
|
|
||||||
exists between DW_TAG_subprogram, nor DW_TAG_inlined_subroutine as described
|
|
||||||
by Jakub Jelinek. This makes sense, when we look at DW_TAG_GNU_call_site and
|
|
||||||
we just unwind the current inlined frame we get the same PC - this is no new
|
|
||||||
information.
|
|
||||||
|
|
||||||
TAILCALL_FRAME is a different case, while also an artificial frame the
|
|
||||||
sequence cannot be determined at compile time and the binding
|
|
||||||
DW_TAG_GNU_call_site <-> DW_OP_GNU_entry_value exists also for
|
|
||||||
TAILCALL_FRAMEs.
|
|
||||||
|
|
||||||
I will check it in.
|
|
||||||
|
|
||||||
No regressions on {x86_64,x86_64-m32,i686}-fedora18-linux-gnu.
|
|
||||||
|
|
||||||
|
|
||||||
Thanks,
|
|
||||||
Jan
|
|
||||||
|
|
||||||
|
|
||||||
gdb/
|
|
||||||
2012-10-05 Jan Kratochvil <jan.kratochvil@redhat.com>
|
|
||||||
|
|
||||||
Fix entry values resolving in inlined frames.
|
|
||||||
* dwarf2loc.c (dwarf_expr_reg_to_entry_parameter): Move func_addr,
|
|
||||||
gdbarch and caller_frame initialization later. Skip INLINE_FRAME
|
|
||||||
entries of FRAME.
|
|
||||||
|
|
||||||
gdb/testsuite/
|
|
||||||
2012-10-05 Jan Kratochvil <jan.kratochvil@redhat.com>
|
|
||||||
|
|
||||||
Fix entry values resolving in inlined frames.
|
|
||||||
* gdb.arch/amd64-entry-value-inline.S: New file.
|
|
||||||
* gdb.arch/amd64-entry-value-inline.c: New file.
|
|
||||||
* gdb.arch/amd64-entry-value-inline.exp: New file.
|
|
||||||
|
|
||||||
diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c
|
|
||||||
index e8d39fe..0bdc042 100644
|
|
||||||
--- a/gdb/dwarf2loc.c
|
|
||||||
+++ b/gdb/dwarf2loc.c
|
|
||||||
@@ -980,16 +980,27 @@ dwarf_expr_reg_to_entry_parameter (struct frame_info *frame,
|
|
||||||
union call_site_parameter_u kind_u,
|
|
||||||
struct dwarf2_per_cu_data **per_cu_return)
|
|
||||||
{
|
|
||||||
- CORE_ADDR func_addr = get_frame_func (frame);
|
|
||||||
- CORE_ADDR caller_pc;
|
|
||||||
- struct gdbarch *gdbarch = get_frame_arch (frame);
|
|
||||||
- struct frame_info *caller_frame = get_prev_frame (frame);
|
|
||||||
+ CORE_ADDR func_addr, caller_pc;
|
|
||||||
+ struct gdbarch *gdbarch;
|
|
||||||
+ struct frame_info *caller_frame;
|
|
||||||
struct call_site *call_site;
|
|
||||||
int iparams;
|
|
||||||
/* Initialize it just to avoid a GCC false warning. */
|
|
||||||
struct call_site_parameter *parameter = NULL;
|
|
||||||
CORE_ADDR target_addr;
|
|
||||||
|
|
||||||
+ /* Skip any inlined frames, entry value call sites work between real
|
|
||||||
+ functions. They do not make sense between inline functions as even PC
|
|
||||||
+ does not change there. */
|
|
||||||
+ while (get_frame_type (frame) == INLINE_FRAME)
|
|
||||||
+ {
|
|
||||||
+ frame = get_prev_frame (frame);
|
|
||||||
+ gdb_assert (frame != NULL);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ func_addr = get_frame_func (frame);
|
|
||||||
+ gdbarch = get_frame_arch (frame);
|
|
||||||
+ caller_frame = get_prev_frame (frame);
|
|
||||||
if (gdbarch != frame_unwind_arch (frame))
|
|
||||||
{
|
|
||||||
struct minimal_symbol *msym = lookup_minimal_symbol_by_pc (func_addr);
|
|
||||||
diff --git a/gdb/testsuite/gdb.arch/amd64-entry-value-inline.S b/gdb/testsuite/gdb.arch/amd64-entry-value-inline.S
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..5f353f5
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/gdb/testsuite/gdb.arch/amd64-entry-value-inline.S
|
|
||||||
@@ -0,0 +1,672 @@
|
|
||||||
+/* This testcase is part of GDB, the GNU debugger.
|
|
||||||
+
|
|
||||||
+ Copyright 2012 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 3 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, see <http://www.gnu.org/licenses/>. */
|
|
||||||
+
|
|
||||||
+/* This file is compiled from gdb.arch/amd64-entry-value-inline.c
|
|
||||||
+ using -g -dA -S -O2. */
|
|
||||||
+
|
|
||||||
+ .file "amd64-entry-value-inline.c"
|
|
||||||
+ .text
|
|
||||||
+.Ltext0:
|
|
||||||
+ .p2align 4,,15
|
|
||||||
+ .type fn1, @function
|
|
||||||
+fn1:
|
|
||||||
+.LFB0:
|
|
||||||
+ .file 1 "gdb.arch/amd64-entry-value-inline.c"
|
|
||||||
+ # gdb.arch/amd64-entry-value-inline.c:22
|
|
||||||
+ .loc 1 22 0
|
|
||||||
+ .cfi_startproc
|
|
||||||
+.LVL0:
|
|
||||||
+# BLOCK 2 freq:10000 seq:0
|
|
||||||
+# PRED: ENTRY [100.0%] (FALLTHRU)
|
|
||||||
+ # gdb.arch/amd64-entry-value-inline.c:23
|
|
||||||
+ .loc 1 23 0
|
|
||||||
+ movl v(%rip), %eax
|
|
||||||
+ addl $1, %eax
|
|
||||||
+ movl %eax, v(%rip)
|
|
||||||
+# SUCC: EXIT [100.0%]
|
|
||||||
+ ret
|
|
||||||
+ .cfi_endproc
|
|
||||||
+.LFE0:
|
|
||||||
+ .size fn1, .-fn1
|
|
||||||
+ .p2align 4,,15
|
|
||||||
+ .globl fn3
|
|
||||||
+ .type fn3, @function
|
|
||||||
+fn3:
|
|
||||||
+.LFB2:
|
|
||||||
+ # gdb.arch/amd64-entry-value-inline.c:41
|
|
||||||
+ .loc 1 41 0
|
|
||||||
+ .cfi_startproc
|
|
||||||
+.LVL1:
|
|
||||||
+# BLOCK 2 freq:10000 seq:0
|
|
||||||
+# PRED: ENTRY [100.0%] (FALLTHRU)
|
|
||||||
+.LBB4:
|
|
||||||
+.LBB5:
|
|
||||||
+ # gdb.arch/amd64-entry-value-inline.c:29
|
|
||||||
+ .loc 1 29 0
|
|
||||||
+ testl %esi, %esi
|
|
||||||
+.LBE5:
|
|
||||||
+.LBE4:
|
|
||||||
+ # gdb.arch/amd64-entry-value-inline.c:41
|
|
||||||
+ .loc 1 41 0
|
|
||||||
+ pushq %rbx
|
|
||||||
+ .cfi_def_cfa_offset 16
|
|
||||||
+ .cfi_offset 3, -16
|
|
||||||
+ # gdb.arch/amd64-entry-value-inline.c:41
|
|
||||||
+ .loc 1 41 0
|
|
||||||
+ movl %edi, %ebx
|
|
||||||
+.LBB7:
|
|
||||||
+.LBB6:
|
|
||||||
+# SUCC: 3 [39.0%] (FALLTHRU,CAN_FALLTHRU) 4 [61.0%] (CAN_FALLTHRU)
|
|
||||||
+ # gdb.arch/amd64-entry-value-inline.c:29
|
|
||||||
+ .loc 1 29 0
|
|
||||||
+ je .L3
|
|
||||||
+# BLOCK 3 freq:3898 seq:1
|
|
||||||
+# PRED: 2 [39.0%] (FALLTHRU,CAN_FALLTHRU)
|
|
||||||
+ # gdb.arch/amd64-entry-value-inline.c:31
|
|
||||||
+ .loc 1 31 0
|
|
||||||
+ call fn1
|
|
||||||
+.LVL2:
|
|
||||||
+ # gdb.arch/amd64-entry-value-inline.c:32
|
|
||||||
+ .loc 1 32 0
|
|
||||||
+ leal -2(%rbx), %eax
|
|
||||||
+.LVL3:
|
|
||||||
+ # gdb.arch/amd64-entry-value-inline.c:33
|
|
||||||
+ .loc 1 33 0
|
|
||||||
+ movl %eax, %edi
|
|
||||||
+ imull %eax, %edi
|
|
||||||
+ addl $1, %edi
|
|
||||||
+.LVL4:
|
|
||||||
+ imull %edi, %eax
|
|
||||||
+.LVL5:
|
|
||||||
+ # gdb.arch/amd64-entry-value-inline.c:34
|
|
||||||
+ .loc 1 34 0
|
|
||||||
+ leal (%rbx,%rax), %edi
|
|
||||||
+ call fn1
|
|
||||||
+.LVL6:
|
|
||||||
+# SUCC: 4 [100.0%] (FALLTHRU,CAN_FALLTHRU)
|
|
||||||
+# BLOCK 4 freq:10000 seq:2
|
|
||||||
+# PRED: 2 [61.0%] (CAN_FALLTHRU) 3 [100.0%] (FALLTHRU,CAN_FALLTHRU)
|
|
||||||
+.L3:
|
|
||||||
+.LBE6:
|
|
||||||
+.LBE7:
|
|
||||||
+ # gdb.arch/amd64-entry-value-inline.c:43
|
|
||||||
+ .loc 1 43 0
|
|
||||||
+ movl %ebx, %eax
|
|
||||||
+ popq %rbx
|
|
||||||
+ .cfi_def_cfa_offset 8
|
|
||||||
+.LVL7:
|
|
||||||
+# SUCC: EXIT [100.0%]
|
|
||||||
+ ret
|
|
||||||
+ .cfi_endproc
|
|
||||||
+.LFE2:
|
|
||||||
+ .size fn3, .-fn3
|
|
||||||
+ .section .text.startup,"ax",@progbits
|
|
||||||
+ .p2align 4,,15
|
|
||||||
+ .globl main
|
|
||||||
+ .type main, @function
|
|
||||||
+main:
|
|
||||||
+.LFB3:
|
|
||||||
+ # gdb.arch/amd64-entry-value-inline.c:47
|
|
||||||
+ .loc 1 47 0
|
|
||||||
+ .cfi_startproc
|
|
||||||
+# BLOCK 2 freq:10000 seq:0
|
|
||||||
+# PRED: ENTRY [100.0%] (FALLTHRU)
|
|
||||||
+ # gdb.arch/amd64-entry-value-inline.c:48
|
|
||||||
+ .loc 1 48 0
|
|
||||||
+ movl $25, %esi
|
|
||||||
+ movl $6, %edi
|
|
||||||
+ call fn3
|
|
||||||
+.LVL8:
|
|
||||||
+ # gdb.arch/amd64-entry-value-inline.c:50
|
|
||||||
+ .loc 1 50 0
|
|
||||||
+ xorl %eax, %eax
|
|
||||||
+# SUCC: EXIT [100.0%]
|
|
||||||
+ ret
|
|
||||||
+ .cfi_endproc
|
|
||||||
+.LFE3:
|
|
||||||
+ .size main, .-main
|
|
||||||
+ .local v
|
|
||||||
+ .comm v,4,4
|
|
||||||
+ .text
|
|
||||||
+.Letext0:
|
|
||||||
+ .section .debug_info,"",@progbits
|
|
||||||
+.Ldebug_info0:
|
|
||||||
+ .long 0x164 # Length of Compilation Unit Info
|
|
||||||
+ .value 0x4 # DWARF version number
|
|
||||||
+ .long .Ldebug_abbrev0 # Offset Into Abbrev. Section
|
|
||||||
+ .byte 0x8 # Pointer Size (in bytes)
|
|
||||||
+ .uleb128 0x1 # (DIE (0xb) DW_TAG_compile_unit)
|
|
||||||
+ .long .LASF0 # DW_AT_producer: "GNU C 4.8.0 20121005 (experimental) -mtune=generic -march=x86-64 -g -O2"
|
|
||||||
+ .byte 0x1 # DW_AT_language
|
|
||||||
+ .long .LASF1 # DW_AT_name: "gdb.arch/amd64-entry-value-inline.c"
|
|
||||||
+ .long .LASF2 # DW_AT_comp_dir: ""
|
|
||||||
+ .long .Ldebug_ranges0+0x30 # DW_AT_ranges
|
|
||||||
+ .quad 0 # DW_AT_low_pc
|
|
||||||
+ .long .Ldebug_line0 # DW_AT_stmt_list
|
|
||||||
+ .uleb128 0x2 # (DIE (0x29) DW_TAG_subprogram)
|
|
||||||
+ .ascii "fn1\0" # DW_AT_name
|
|
||||||
+ .byte 0x1 # DW_AT_decl_file (gdb.arch/amd64-entry-value-inline.c)
|
|
||||||
+ .byte 0x15 # DW_AT_decl_line
|
|
||||||
+ # DW_AT_prototyped
|
|
||||||
+ .quad .LFB0 # DW_AT_low_pc
|
|
||||||
+ .quad .LFE0-.LFB0 # DW_AT_high_pc
|
|
||||||
+ .uleb128 0x1 # DW_AT_frame_base
|
|
||||||
+ .byte 0x9c # DW_OP_call_frame_cfa
|
|
||||||
+ # DW_AT_GNU_all_call_sites
|
|
||||||
+ .long 0x52 # DW_AT_sibling
|
|
||||||
+ .uleb128 0x3 # (DIE (0x46) DW_TAG_formal_parameter)
|
|
||||||
+ .ascii "x\0" # DW_AT_name
|
|
||||||
+ .byte 0x1 # DW_AT_decl_file (gdb.arch/amd64-entry-value-inline.c)
|
|
||||||
+ .byte 0x15 # DW_AT_decl_line
|
|
||||||
+ .long 0x52 # DW_AT_type
|
|
||||||
+ .uleb128 0x1 # DW_AT_location
|
|
||||||
+ .byte 0x55 # DW_OP_reg5
|
|
||||||
+ .byte 0 # end of children of DIE 0x29
|
|
||||||
+ .uleb128 0x4 # (DIE (0x52) DW_TAG_base_type)
|
|
||||||
+ .byte 0x4 # DW_AT_byte_size
|
|
||||||
+ .byte 0x5 # DW_AT_encoding
|
|
||||||
+ .ascii "int\0" # DW_AT_name
|
|
||||||
+ .uleb128 0x5 # (DIE (0x59) DW_TAG_subprogram)
|
|
||||||
+ .ascii "fn2\0" # DW_AT_name
|
|
||||||
+ .byte 0x1 # DW_AT_decl_file (gdb.arch/amd64-entry-value-inline.c)
|
|
||||||
+ .byte 0x1b # DW_AT_decl_line
|
|
||||||
+ # DW_AT_prototyped
|
|
||||||
+ .long 0x52 # DW_AT_type
|
|
||||||
+ .byte 0x1 # DW_AT_inline
|
|
||||||
+ .long 0x7c # DW_AT_sibling
|
|
||||||
+ .uleb128 0x6 # (DIE (0x69) DW_TAG_formal_parameter)
|
|
||||||
+ .ascii "x\0" # DW_AT_name
|
|
||||||
+ .byte 0x1 # DW_AT_decl_file (gdb.arch/amd64-entry-value-inline.c)
|
|
||||||
+ .byte 0x1b # DW_AT_decl_line
|
|
||||||
+ .long 0x52 # DW_AT_type
|
|
||||||
+ .uleb128 0x6 # (DIE (0x72) DW_TAG_formal_parameter)
|
|
||||||
+ .ascii "y\0" # DW_AT_name
|
|
||||||
+ .byte 0x1 # DW_AT_decl_file (gdb.arch/amd64-entry-value-inline.c)
|
|
||||||
+ .byte 0x1b # DW_AT_decl_line
|
|
||||||
+ .long 0x52 # DW_AT_type
|
|
||||||
+ .byte 0 # end of children of DIE 0x59
|
|
||||||
+ .uleb128 0x7 # (DIE (0x7c) DW_TAG_subprogram)
|
|
||||||
+ # DW_AT_external
|
|
||||||
+ .ascii "fn3\0" # DW_AT_name
|
|
||||||
+ .byte 0x1 # DW_AT_decl_file (gdb.arch/amd64-entry-value-inline.c)
|
|
||||||
+ .byte 0x28 # DW_AT_decl_line
|
|
||||||
+ # DW_AT_prototyped
|
|
||||||
+ .long 0x52 # DW_AT_type
|
|
||||||
+ .quad .LFB2 # DW_AT_low_pc
|
|
||||||
+ .quad .LFE2-.LFB2 # DW_AT_high_pc
|
|
||||||
+ .uleb128 0x1 # DW_AT_frame_base
|
|
||||||
+ .byte 0x9c # DW_OP_call_frame_cfa
|
|
||||||
+ # DW_AT_GNU_all_call_sites
|
|
||||||
+ .long 0x115 # DW_AT_sibling
|
|
||||||
+ .uleb128 0x8 # (DIE (0x9d) DW_TAG_formal_parameter)
|
|
||||||
+ .ascii "x\0" # DW_AT_name
|
|
||||||
+ .byte 0x1 # DW_AT_decl_file (gdb.arch/amd64-entry-value-inline.c)
|
|
||||||
+ .byte 0x28 # DW_AT_decl_line
|
|
||||||
+ .long 0x52 # DW_AT_type
|
|
||||||
+ .long .LLST0 # DW_AT_location
|
|
||||||
+ .uleb128 0x8 # (DIE (0xaa) DW_TAG_formal_parameter)
|
|
||||||
+ .ascii "y\0" # DW_AT_name
|
|
||||||
+ .byte 0x1 # DW_AT_decl_file (gdb.arch/amd64-entry-value-inline.c)
|
|
||||||
+ .byte 0x28 # DW_AT_decl_line
|
|
||||||
+ .long 0x52 # DW_AT_type
|
|
||||||
+ .long .LLST1 # DW_AT_location
|
|
||||||
+ .uleb128 0x9 # (DIE (0xb7) DW_TAG_inlined_subroutine)
|
|
||||||
+ .long 0x59 # DW_AT_abstract_origin
|
|
||||||
+ .quad .LBB4 # DW_AT_entry_pc
|
|
||||||
+ .long .Ldebug_ranges0+0 # DW_AT_ranges
|
|
||||||
+ .byte 0x1 # DW_AT_call_file (gdb.arch/amd64-entry-value-inline.c)
|
|
||||||
+ .byte 0x2a # DW_AT_call_line
|
|
||||||
+ .uleb128 0xa # (DIE (0xca) DW_TAG_formal_parameter)
|
|
||||||
+ .long 0x72 # DW_AT_abstract_origin
|
|
||||||
+ .long .LLST2 # DW_AT_location
|
|
||||||
+ .uleb128 0xa # (DIE (0xd3) DW_TAG_formal_parameter)
|
|
||||||
+ .long 0x69 # DW_AT_abstract_origin
|
|
||||||
+ .long .LLST0 # DW_AT_location
|
|
||||||
+ .uleb128 0xb # (DIE (0xdc) DW_TAG_GNU_call_site)
|
|
||||||
+ .quad .LVL2 # DW_AT_low_pc
|
|
||||||
+ .long 0x29 # DW_AT_abstract_origin
|
|
||||||
+ .long 0xf4 # DW_AT_sibling
|
|
||||||
+ .uleb128 0xc # (DIE (0xed) DW_TAG_GNU_call_site_parameter)
|
|
||||||
+ .uleb128 0x1 # DW_AT_location
|
|
||||||
+ .byte 0x55 # DW_OP_reg5
|
|
||||||
+ .uleb128 0x2 # DW_AT_GNU_call_site_value
|
|
||||||
+ .byte 0x73 # DW_OP_breg3
|
|
||||||
+ .sleb128 0
|
|
||||||
+ .byte 0 # end of children of DIE 0xdc
|
|
||||||
+ .uleb128 0xd # (DIE (0xf4) DW_TAG_GNU_call_site)
|
|
||||||
+ .quad .LVL6 # DW_AT_low_pc
|
|
||||||
+ .long 0x29 # DW_AT_abstract_origin
|
|
||||||
+ .uleb128 0xc # (DIE (0x101) DW_TAG_GNU_call_site_parameter)
|
|
||||||
+ .uleb128 0x1 # DW_AT_location
|
|
||||||
+ .byte 0x55 # DW_OP_reg5
|
|
||||||
+ .uleb128 0xd # DW_AT_GNU_call_site_value
|
|
||||||
+ .byte 0x73 # DW_OP_breg3
|
|
||||||
+ .sleb128 -2
|
|
||||||
+ .byte 0x73 # DW_OP_breg3
|
|
||||||
+ .sleb128 -2
|
|
||||||
+ .byte 0x73 # DW_OP_breg3
|
|
||||||
+ .sleb128 -2
|
|
||||||
+ .byte 0x1e # DW_OP_mul
|
|
||||||
+ .byte 0x23 # DW_OP_plus_uconst
|
|
||||||
+ .uleb128 0x1
|
|
||||||
+ .byte 0x1e # DW_OP_mul
|
|
||||||
+ .byte 0x73 # DW_OP_breg3
|
|
||||||
+ .sleb128 0
|
|
||||||
+ .byte 0x22 # DW_OP_plus
|
|
||||||
+ .byte 0 # end of children of DIE 0xf4
|
|
||||||
+ .byte 0 # end of children of DIE 0xb7
|
|
||||||
+ .byte 0 # end of children of DIE 0x7c
|
|
||||||
+ .uleb128 0xe # (DIE (0x115) DW_TAG_subprogram)
|
|
||||||
+ # DW_AT_external
|
|
||||||
+ .long .LASF3 # DW_AT_name: "main"
|
|
||||||
+ .byte 0x1 # DW_AT_decl_file (gdb.arch/amd64-entry-value-inline.c)
|
|
||||||
+ .byte 0x2e # DW_AT_decl_line
|
|
||||||
+ .long 0x52 # DW_AT_type
|
|
||||||
+ .quad .LFB3 # DW_AT_low_pc
|
|
||||||
+ .quad .LFE3-.LFB3 # DW_AT_high_pc
|
|
||||||
+ .uleb128 0x1 # DW_AT_frame_base
|
|
||||||
+ .byte 0x9c # DW_OP_call_frame_cfa
|
|
||||||
+ # DW_AT_GNU_all_call_sites
|
|
||||||
+ .long 0x14f # DW_AT_sibling
|
|
||||||
+ .uleb128 0xd # (DIE (0x136) DW_TAG_GNU_call_site)
|
|
||||||
+ .quad .LVL8 # DW_AT_low_pc
|
|
||||||
+ .long 0x7c # DW_AT_abstract_origin
|
|
||||||
+ .uleb128 0xc # (DIE (0x143) DW_TAG_GNU_call_site_parameter)
|
|
||||||
+ .uleb128 0x1 # DW_AT_location
|
|
||||||
+ .byte 0x55 # DW_OP_reg5
|
|
||||||
+ .uleb128 0x1 # DW_AT_GNU_call_site_value
|
|
||||||
+ .byte 0x36 # DW_OP_lit6
|
|
||||||
+ .uleb128 0xc # (DIE (0x148) DW_TAG_GNU_call_site_parameter)
|
|
||||||
+ .uleb128 0x1 # DW_AT_location
|
|
||||||
+ .byte 0x54 # DW_OP_reg4
|
|
||||||
+ .uleb128 0x1 # DW_AT_GNU_call_site_value
|
|
||||||
+ .byte 0x49 # DW_OP_lit25
|
|
||||||
+ .byte 0 # end of children of DIE 0x136
|
|
||||||
+ .byte 0 # end of children of DIE 0x115
|
|
||||||
+ .uleb128 0xf # (DIE (0x14f) DW_TAG_variable)
|
|
||||||
+ .ascii "v\0" # DW_AT_name
|
|
||||||
+ .byte 0x1 # DW_AT_decl_file (gdb.arch/amd64-entry-value-inline.c)
|
|
||||||
+ .byte 0x12 # DW_AT_decl_line
|
|
||||||
+ .long 0x162 # DW_AT_type
|
|
||||||
+ .uleb128 0x9 # DW_AT_location
|
|
||||||
+ .byte 0x3 # DW_OP_addr
|
|
||||||
+ .quad v
|
|
||||||
+ .uleb128 0x10 # (DIE (0x162) DW_TAG_volatile_type)
|
|
||||||
+ .long 0x52 # DW_AT_type
|
|
||||||
+ .byte 0 # end of children of DIE 0xb
|
|
||||||
+ .section .debug_abbrev,"",@progbits
|
|
||||||
+.Ldebug_abbrev0:
|
|
||||||
+ .uleb128 0x1 # (abbrev code)
|
|
||||||
+ .uleb128 0x11 # (TAG: DW_TAG_compile_unit)
|
|
||||||
+ .byte 0x1 # DW_children_yes
|
|
||||||
+ .uleb128 0x25 # (DW_AT_producer)
|
|
||||||
+ .uleb128 0xe # (DW_FORM_strp)
|
|
||||||
+ .uleb128 0x13 # (DW_AT_language)
|
|
||||||
+ .uleb128 0xb # (DW_FORM_data1)
|
|
||||||
+ .uleb128 0x3 # (DW_AT_name)
|
|
||||||
+ .uleb128 0xe # (DW_FORM_strp)
|
|
||||||
+ .uleb128 0x1b # (DW_AT_comp_dir)
|
|
||||||
+ .uleb128 0xe # (DW_FORM_strp)
|
|
||||||
+ .uleb128 0x55 # (DW_AT_ranges)
|
|
||||||
+ .uleb128 0x17 # (DW_FORM_sec_offset)
|
|
||||||
+ .uleb128 0x11 # (DW_AT_low_pc)
|
|
||||||
+ .uleb128 0x1 # (DW_FORM_addr)
|
|
||||||
+ .uleb128 0x10 # (DW_AT_stmt_list)
|
|
||||||
+ .uleb128 0x17 # (DW_FORM_sec_offset)
|
|
||||||
+ .byte 0
|
|
||||||
+ .byte 0
|
|
||||||
+ .uleb128 0x2 # (abbrev code)
|
|
||||||
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
|
|
||||||
+ .byte 0x1 # DW_children_yes
|
|
||||||
+ .uleb128 0x3 # (DW_AT_name)
|
|
||||||
+ .uleb128 0x8 # (DW_FORM_string)
|
|
||||||
+ .uleb128 0x3a # (DW_AT_decl_file)
|
|
||||||
+ .uleb128 0xb # (DW_FORM_data1)
|
|
||||||
+ .uleb128 0x3b # (DW_AT_decl_line)
|
|
||||||
+ .uleb128 0xb # (DW_FORM_data1)
|
|
||||||
+ .uleb128 0x27 # (DW_AT_prototyped)
|
|
||||||
+ .uleb128 0x19 # (DW_FORM_flag_present)
|
|
||||||
+ .uleb128 0x11 # (DW_AT_low_pc)
|
|
||||||
+ .uleb128 0x1 # (DW_FORM_addr)
|
|
||||||
+ .uleb128 0x12 # (DW_AT_high_pc)
|
|
||||||
+ .uleb128 0x7 # (DW_FORM_data8)
|
|
||||||
+ .uleb128 0x40 # (DW_AT_frame_base)
|
|
||||||
+ .uleb128 0x18 # (DW_FORM_exprloc)
|
|
||||||
+ .uleb128 0x2117 # (DW_AT_GNU_all_call_sites)
|
|
||||||
+ .uleb128 0x19 # (DW_FORM_flag_present)
|
|
||||||
+ .uleb128 0x1 # (DW_AT_sibling)
|
|
||||||
+ .uleb128 0x13 # (DW_FORM_ref4)
|
|
||||||
+ .byte 0
|
|
||||||
+ .byte 0
|
|
||||||
+ .uleb128 0x3 # (abbrev code)
|
|
||||||
+ .uleb128 0x5 # (TAG: DW_TAG_formal_parameter)
|
|
||||||
+ .byte 0 # DW_children_no
|
|
||||||
+ .uleb128 0x3 # (DW_AT_name)
|
|
||||||
+ .uleb128 0x8 # (DW_FORM_string)
|
|
||||||
+ .uleb128 0x3a # (DW_AT_decl_file)
|
|
||||||
+ .uleb128 0xb # (DW_FORM_data1)
|
|
||||||
+ .uleb128 0x3b # (DW_AT_decl_line)
|
|
||||||
+ .uleb128 0xb # (DW_FORM_data1)
|
|
||||||
+ .uleb128 0x49 # (DW_AT_type)
|
|
||||||
+ .uleb128 0x13 # (DW_FORM_ref4)
|
|
||||||
+ .uleb128 0x2 # (DW_AT_location)
|
|
||||||
+ .uleb128 0x18 # (DW_FORM_exprloc)
|
|
||||||
+ .byte 0
|
|
||||||
+ .byte 0
|
|
||||||
+ .uleb128 0x4 # (abbrev code)
|
|
||||||
+ .uleb128 0x24 # (TAG: DW_TAG_base_type)
|
|
||||||
+ .byte 0 # DW_children_no
|
|
||||||
+ .uleb128 0xb # (DW_AT_byte_size)
|
|
||||||
+ .uleb128 0xb # (DW_FORM_data1)
|
|
||||||
+ .uleb128 0x3e # (DW_AT_encoding)
|
|
||||||
+ .uleb128 0xb # (DW_FORM_data1)
|
|
||||||
+ .uleb128 0x3 # (DW_AT_name)
|
|
||||||
+ .uleb128 0x8 # (DW_FORM_string)
|
|
||||||
+ .byte 0
|
|
||||||
+ .byte 0
|
|
||||||
+ .uleb128 0x5 # (abbrev code)
|
|
||||||
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
|
|
||||||
+ .byte 0x1 # DW_children_yes
|
|
||||||
+ .uleb128 0x3 # (DW_AT_name)
|
|
||||||
+ .uleb128 0x8 # (DW_FORM_string)
|
|
||||||
+ .uleb128 0x3a # (DW_AT_decl_file)
|
|
||||||
+ .uleb128 0xb # (DW_FORM_data1)
|
|
||||||
+ .uleb128 0x3b # (DW_AT_decl_line)
|
|
||||||
+ .uleb128 0xb # (DW_FORM_data1)
|
|
||||||
+ .uleb128 0x27 # (DW_AT_prototyped)
|
|
||||||
+ .uleb128 0x19 # (DW_FORM_flag_present)
|
|
||||||
+ .uleb128 0x49 # (DW_AT_type)
|
|
||||||
+ .uleb128 0x13 # (DW_FORM_ref4)
|
|
||||||
+ .uleb128 0x20 # (DW_AT_inline)
|
|
||||||
+ .uleb128 0xb # (DW_FORM_data1)
|
|
||||||
+ .uleb128 0x1 # (DW_AT_sibling)
|
|
||||||
+ .uleb128 0x13 # (DW_FORM_ref4)
|
|
||||||
+ .byte 0
|
|
||||||
+ .byte 0
|
|
||||||
+ .uleb128 0x6 # (abbrev code)
|
|
||||||
+ .uleb128 0x5 # (TAG: DW_TAG_formal_parameter)
|
|
||||||
+ .byte 0 # DW_children_no
|
|
||||||
+ .uleb128 0x3 # (DW_AT_name)
|
|
||||||
+ .uleb128 0x8 # (DW_FORM_string)
|
|
||||||
+ .uleb128 0x3a # (DW_AT_decl_file)
|
|
||||||
+ .uleb128 0xb # (DW_FORM_data1)
|
|
||||||
+ .uleb128 0x3b # (DW_AT_decl_line)
|
|
||||||
+ .uleb128 0xb # (DW_FORM_data1)
|
|
||||||
+ .uleb128 0x49 # (DW_AT_type)
|
|
||||||
+ .uleb128 0x13 # (DW_FORM_ref4)
|
|
||||||
+ .byte 0
|
|
||||||
+ .byte 0
|
|
||||||
+ .uleb128 0x7 # (abbrev code)
|
|
||||||
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
|
|
||||||
+ .byte 0x1 # DW_children_yes
|
|
||||||
+ .uleb128 0x3f # (DW_AT_external)
|
|
||||||
+ .uleb128 0x19 # (DW_FORM_flag_present)
|
|
||||||
+ .uleb128 0x3 # (DW_AT_name)
|
|
||||||
+ .uleb128 0x8 # (DW_FORM_string)
|
|
||||||
+ .uleb128 0x3a # (DW_AT_decl_file)
|
|
||||||
+ .uleb128 0xb # (DW_FORM_data1)
|
|
||||||
+ .uleb128 0x3b # (DW_AT_decl_line)
|
|
||||||
+ .uleb128 0xb # (DW_FORM_data1)
|
|
||||||
+ .uleb128 0x27 # (DW_AT_prototyped)
|
|
||||||
+ .uleb128 0x19 # (DW_FORM_flag_present)
|
|
||||||
+ .uleb128 0x49 # (DW_AT_type)
|
|
||||||
+ .uleb128 0x13 # (DW_FORM_ref4)
|
|
||||||
+ .uleb128 0x11 # (DW_AT_low_pc)
|
|
||||||
+ .uleb128 0x1 # (DW_FORM_addr)
|
|
||||||
+ .uleb128 0x12 # (DW_AT_high_pc)
|
|
||||||
+ .uleb128 0x7 # (DW_FORM_data8)
|
|
||||||
+ .uleb128 0x40 # (DW_AT_frame_base)
|
|
||||||
+ .uleb128 0x18 # (DW_FORM_exprloc)
|
|
||||||
+ .uleb128 0x2117 # (DW_AT_GNU_all_call_sites)
|
|
||||||
+ .uleb128 0x19 # (DW_FORM_flag_present)
|
|
||||||
+ .uleb128 0x1 # (DW_AT_sibling)
|
|
||||||
+ .uleb128 0x13 # (DW_FORM_ref4)
|
|
||||||
+ .byte 0
|
|
||||||
+ .byte 0
|
|
||||||
+ .uleb128 0x8 # (abbrev code)
|
|
||||||
+ .uleb128 0x5 # (TAG: DW_TAG_formal_parameter)
|
|
||||||
+ .byte 0 # DW_children_no
|
|
||||||
+ .uleb128 0x3 # (DW_AT_name)
|
|
||||||
+ .uleb128 0x8 # (DW_FORM_string)
|
|
||||||
+ .uleb128 0x3a # (DW_AT_decl_file)
|
|
||||||
+ .uleb128 0xb # (DW_FORM_data1)
|
|
||||||
+ .uleb128 0x3b # (DW_AT_decl_line)
|
|
||||||
+ .uleb128 0xb # (DW_FORM_data1)
|
|
||||||
+ .uleb128 0x49 # (DW_AT_type)
|
|
||||||
+ .uleb128 0x13 # (DW_FORM_ref4)
|
|
||||||
+ .uleb128 0x2 # (DW_AT_location)
|
|
||||||
+ .uleb128 0x17 # (DW_FORM_sec_offset)
|
|
||||||
+ .byte 0
|
|
||||||
+ .byte 0
|
|
||||||
+ .uleb128 0x9 # (abbrev code)
|
|
||||||
+ .uleb128 0x1d # (TAG: DW_TAG_inlined_subroutine)
|
|
||||||
+ .byte 0x1 # DW_children_yes
|
|
||||||
+ .uleb128 0x31 # (DW_AT_abstract_origin)
|
|
||||||
+ .uleb128 0x13 # (DW_FORM_ref4)
|
|
||||||
+ .uleb128 0x52 # (DW_AT_entry_pc)
|
|
||||||
+ .uleb128 0x1 # (DW_FORM_addr)
|
|
||||||
+ .uleb128 0x55 # (DW_AT_ranges)
|
|
||||||
+ .uleb128 0x17 # (DW_FORM_sec_offset)
|
|
||||||
+ .uleb128 0x58 # (DW_AT_call_file)
|
|
||||||
+ .uleb128 0xb # (DW_FORM_data1)
|
|
||||||
+ .uleb128 0x59 # (DW_AT_call_line)
|
|
||||||
+ .uleb128 0xb # (DW_FORM_data1)
|
|
||||||
+ .byte 0
|
|
||||||
+ .byte 0
|
|
||||||
+ .uleb128 0xa # (abbrev code)
|
|
||||||
+ .uleb128 0x5 # (TAG: DW_TAG_formal_parameter)
|
|
||||||
+ .byte 0 # DW_children_no
|
|
||||||
+ .uleb128 0x31 # (DW_AT_abstract_origin)
|
|
||||||
+ .uleb128 0x13 # (DW_FORM_ref4)
|
|
||||||
+ .uleb128 0x2 # (DW_AT_location)
|
|
||||||
+ .uleb128 0x17 # (DW_FORM_sec_offset)
|
|
||||||
+ .byte 0
|
|
||||||
+ .byte 0
|
|
||||||
+ .uleb128 0xb # (abbrev code)
|
|
||||||
+ .uleb128 0x4109 # (TAG: DW_TAG_GNU_call_site)
|
|
||||||
+ .byte 0x1 # DW_children_yes
|
|
||||||
+ .uleb128 0x11 # (DW_AT_low_pc)
|
|
||||||
+ .uleb128 0x1 # (DW_FORM_addr)
|
|
||||||
+ .uleb128 0x31 # (DW_AT_abstract_origin)
|
|
||||||
+ .uleb128 0x13 # (DW_FORM_ref4)
|
|
||||||
+ .uleb128 0x1 # (DW_AT_sibling)
|
|
||||||
+ .uleb128 0x13 # (DW_FORM_ref4)
|
|
||||||
+ .byte 0
|
|
||||||
+ .byte 0
|
|
||||||
+ .uleb128 0xc # (abbrev code)
|
|
||||||
+ .uleb128 0x410a # (TAG: DW_TAG_GNU_call_site_parameter)
|
|
||||||
+ .byte 0 # DW_children_no
|
|
||||||
+ .uleb128 0x2 # (DW_AT_location)
|
|
||||||
+ .uleb128 0x18 # (DW_FORM_exprloc)
|
|
||||||
+ .uleb128 0x2111 # (DW_AT_GNU_call_site_value)
|
|
||||||
+ .uleb128 0x18 # (DW_FORM_exprloc)
|
|
||||||
+ .byte 0
|
|
||||||
+ .byte 0
|
|
||||||
+ .uleb128 0xd # (abbrev code)
|
|
||||||
+ .uleb128 0x4109 # (TAG: DW_TAG_GNU_call_site)
|
|
||||||
+ .byte 0x1 # DW_children_yes
|
|
||||||
+ .uleb128 0x11 # (DW_AT_low_pc)
|
|
||||||
+ .uleb128 0x1 # (DW_FORM_addr)
|
|
||||||
+ .uleb128 0x31 # (DW_AT_abstract_origin)
|
|
||||||
+ .uleb128 0x13 # (DW_FORM_ref4)
|
|
||||||
+ .byte 0
|
|
||||||
+ .byte 0
|
|
||||||
+ .uleb128 0xe # (abbrev code)
|
|
||||||
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
|
|
||||||
+ .byte 0x1 # DW_children_yes
|
|
||||||
+ .uleb128 0x3f # (DW_AT_external)
|
|
||||||
+ .uleb128 0x19 # (DW_FORM_flag_present)
|
|
||||||
+ .uleb128 0x3 # (DW_AT_name)
|
|
||||||
+ .uleb128 0xe # (DW_FORM_strp)
|
|
||||||
+ .uleb128 0x3a # (DW_AT_decl_file)
|
|
||||||
+ .uleb128 0xb # (DW_FORM_data1)
|
|
||||||
+ .uleb128 0x3b # (DW_AT_decl_line)
|
|
||||||
+ .uleb128 0xb # (DW_FORM_data1)
|
|
||||||
+ .uleb128 0x49 # (DW_AT_type)
|
|
||||||
+ .uleb128 0x13 # (DW_FORM_ref4)
|
|
||||||
+ .uleb128 0x11 # (DW_AT_low_pc)
|
|
||||||
+ .uleb128 0x1 # (DW_FORM_addr)
|
|
||||||
+ .uleb128 0x12 # (DW_AT_high_pc)
|
|
||||||
+ .uleb128 0x7 # (DW_FORM_data8)
|
|
||||||
+ .uleb128 0x40 # (DW_AT_frame_base)
|
|
||||||
+ .uleb128 0x18 # (DW_FORM_exprloc)
|
|
||||||
+ .uleb128 0x2117 # (DW_AT_GNU_all_call_sites)
|
|
||||||
+ .uleb128 0x19 # (DW_FORM_flag_present)
|
|
||||||
+ .uleb128 0x1 # (DW_AT_sibling)
|
|
||||||
+ .uleb128 0x13 # (DW_FORM_ref4)
|
|
||||||
+ .byte 0
|
|
||||||
+ .byte 0
|
|
||||||
+ .uleb128 0xf # (abbrev code)
|
|
||||||
+ .uleb128 0x34 # (TAG: DW_TAG_variable)
|
|
||||||
+ .byte 0 # DW_children_no
|
|
||||||
+ .uleb128 0x3 # (DW_AT_name)
|
|
||||||
+ .uleb128 0x8 # (DW_FORM_string)
|
|
||||||
+ .uleb128 0x3a # (DW_AT_decl_file)
|
|
||||||
+ .uleb128 0xb # (DW_FORM_data1)
|
|
||||||
+ .uleb128 0x3b # (DW_AT_decl_line)
|
|
||||||
+ .uleb128 0xb # (DW_FORM_data1)
|
|
||||||
+ .uleb128 0x49 # (DW_AT_type)
|
|
||||||
+ .uleb128 0x13 # (DW_FORM_ref4)
|
|
||||||
+ .uleb128 0x2 # (DW_AT_location)
|
|
||||||
+ .uleb128 0x18 # (DW_FORM_exprloc)
|
|
||||||
+ .byte 0
|
|
||||||
+ .byte 0
|
|
||||||
+ .uleb128 0x10 # (abbrev code)
|
|
||||||
+ .uleb128 0x35 # (TAG: DW_TAG_volatile_type)
|
|
||||||
+ .byte 0 # DW_children_no
|
|
||||||
+ .uleb128 0x49 # (DW_AT_type)
|
|
||||||
+ .uleb128 0x13 # (DW_FORM_ref4)
|
|
||||||
+ .byte 0
|
|
||||||
+ .byte 0
|
|
||||||
+ .byte 0
|
|
||||||
+ .section .debug_loc,"",@progbits
|
|
||||||
+.Ldebug_loc0:
|
|
||||||
+.LLST0:
|
|
||||||
+ .quad .LVL1 # Location list begin address (*.LLST0)
|
|
||||||
+ .quad .LVL2-1 # Location list end address (*.LLST0)
|
|
||||||
+ .value 0x1 # Location expression size
|
|
||||||
+ .byte 0x55 # DW_OP_reg5
|
|
||||||
+ .quad .LVL2-1 # Location list begin address (*.LLST0)
|
|
||||||
+ .quad .LVL7 # Location list end address (*.LLST0)
|
|
||||||
+ .value 0x1 # Location expression size
|
|
||||||
+ .byte 0x53 # DW_OP_reg3
|
|
||||||
+ .quad .LVL7 # Location list begin address (*.LLST0)
|
|
||||||
+ .quad .LFE2 # Location list end address (*.LLST0)
|
|
||||||
+ .value 0x1 # Location expression size
|
|
||||||
+ .byte 0x50 # DW_OP_reg0
|
|
||||||
+ .quad 0 # Location list terminator begin (*.LLST0)
|
|
||||||
+ .quad 0 # Location list terminator end (*.LLST0)
|
|
||||||
+.LLST1:
|
|
||||||
+ .quad .LVL1 # Location list begin address (*.LLST1)
|
|
||||||
+ .quad .LVL2-1 # Location list end address (*.LLST1)
|
|
||||||
+ .value 0x1 # Location expression size
|
|
||||||
+ .byte 0x54 # DW_OP_reg4
|
|
||||||
+ .quad .LVL2-1 # Location list begin address (*.LLST1)
|
|
||||||
+ .quad .LFE2 # Location list end address (*.LLST1)
|
|
||||||
+ .value 0x4 # Location expression size
|
|
||||||
+ .byte 0xf3 # DW_OP_GNU_entry_value
|
|
||||||
+ .uleb128 0x1
|
|
||||||
+ .byte 0x54 # DW_OP_reg4
|
|
||||||
+ .byte 0x9f # DW_OP_stack_value
|
|
||||||
+ .quad 0 # Location list terminator begin (*.LLST1)
|
|
||||||
+ .quad 0 # Location list terminator end (*.LLST1)
|
|
||||||
+.LLST2:
|
|
||||||
+ .quad .LVL1 # Location list begin address (*.LLST2)
|
|
||||||
+ .quad .LVL2-1 # Location list end address (*.LLST2)
|
|
||||||
+ .value 0x1 # Location expression size
|
|
||||||
+ .byte 0x54 # DW_OP_reg4
|
|
||||||
+ .quad .LVL2-1 # Location list begin address (*.LLST2)
|
|
||||||
+ .quad .LVL3 # Location list end address (*.LLST2)
|
|
||||||
+ .value 0x4 # Location expression size
|
|
||||||
+ .byte 0xf3 # DW_OP_GNU_entry_value
|
|
||||||
+ .uleb128 0x1
|
|
||||||
+ .byte 0x54 # DW_OP_reg4
|
|
||||||
+ .byte 0x9f # DW_OP_stack_value
|
|
||||||
+ .quad .LVL3 # Location list begin address (*.LLST2)
|
|
||||||
+ .quad .LVL4 # Location list end address (*.LLST2)
|
|
||||||
+ .value 0x1 # Location expression size
|
|
||||||
+ .byte 0x50 # DW_OP_reg0
|
|
||||||
+ .quad .LVL4 # Location list begin address (*.LLST2)
|
|
||||||
+ .quad .LVL5 # Location list end address (*.LLST2)
|
|
||||||
+ .value 0x6 # Location expression size
|
|
||||||
+ .byte 0x70 # DW_OP_breg0
|
|
||||||
+ .sleb128 0
|
|
||||||
+ .byte 0x75 # DW_OP_breg5
|
|
||||||
+ .sleb128 0
|
|
||||||
+ .byte 0x1e # DW_OP_mul
|
|
||||||
+ .byte 0x9f # DW_OP_stack_value
|
|
||||||
+ .quad .LVL5 # Location list begin address (*.LLST2)
|
|
||||||
+ .quad .LVL6-1 # Location list end address (*.LLST2)
|
|
||||||
+ .value 0x1 # Location expression size
|
|
||||||
+ .byte 0x50 # DW_OP_reg0
|
|
||||||
+ .quad .LVL6-1 # Location list begin address (*.LLST2)
|
|
||||||
+ .quad .LVL6 # Location list end address (*.LLST2)
|
|
||||||
+ .value 0xb # Location expression size
|
|
||||||
+ .byte 0x73 # DW_OP_breg3
|
|
||||||
+ .sleb128 -2
|
|
||||||
+ .byte 0x73 # DW_OP_breg3
|
|
||||||
+ .sleb128 -2
|
|
||||||
+ .byte 0x73 # DW_OP_breg3
|
|
||||||
+ .sleb128 -2
|
|
||||||
+ .byte 0x1e # DW_OP_mul
|
|
||||||
+ .byte 0x23 # DW_OP_plus_uconst
|
|
||||||
+ .uleb128 0x1
|
|
||||||
+ .byte 0x1e # DW_OP_mul
|
|
||||||
+ .byte 0x9f # DW_OP_stack_value
|
|
||||||
+ .quad 0 # Location list terminator begin (*.LLST2)
|
|
||||||
+ .quad 0 # Location list terminator end (*.LLST2)
|
|
||||||
+ .section .debug_aranges,"",@progbits
|
|
||||||
+ .long 0x3c # Length of Address Ranges Info
|
|
||||||
+ .value 0x2 # DWARF Version
|
|
||||||
+ .long .Ldebug_info0 # Offset of Compilation Unit Info
|
|
||||||
+ .byte 0x8 # Size of Address
|
|
||||||
+ .byte 0 # Size of Segment Descriptor
|
|
||||||
+ .value 0 # Pad to 16 byte boundary
|
|
||||||
+ .value 0
|
|
||||||
+ .quad .Ltext0 # Address
|
|
||||||
+ .quad .Letext0-.Ltext0 # Length
|
|
||||||
+ .quad .LFB3 # Address
|
|
||||||
+ .quad .LFE3-.LFB3 # Length
|
|
||||||
+ .quad 0
|
|
||||||
+ .quad 0
|
|
||||||
+ .section .debug_ranges,"",@progbits
|
|
||||||
+.Ldebug_ranges0:
|
|
||||||
+ .quad .LBB4 # Offset 0
|
|
||||||
+ .quad .LBE4
|
|
||||||
+ .quad .LBB7
|
|
||||||
+ .quad .LBE7
|
|
||||||
+ .quad 0
|
|
||||||
+ .quad 0
|
|
||||||
+ .quad .Ltext0 # Offset 0x30
|
|
||||||
+ .quad .Letext0
|
|
||||||
+ .quad .LFB3 # Offset 0x40
|
|
||||||
+ .quad .LFE3
|
|
||||||
+ .quad 0
|
|
||||||
+ .quad 0
|
|
||||||
+ .section .debug_line,"",@progbits
|
|
||||||
+.Ldebug_line0:
|
|
||||||
+ .section .debug_str,"MS",@progbits,1
|
|
||||||
+.LASF0:
|
|
||||||
+ .string "GNU C 4.8.0 20121005+patches (experimental) -mtune=generic -march=x86-64 -g -O2"
|
|
||||||
+.LASF1:
|
|
||||||
+ .string "gdb.arch/amd64-entry-value-inline.c"
|
|
||||||
+.LASF2:
|
|
||||||
+ .string ""
|
|
||||||
+.LASF3:
|
|
||||||
+ .string "main"
|
|
||||||
+ .ident "GCC: (GNU) 4.8.0 20121005 (experimental)"
|
|
||||||
+ .section .note.GNU-stack,"",@progbits
|
|
||||||
diff --git a/gdb/testsuite/gdb.arch/amd64-entry-value-inline.c b/gdb/testsuite/gdb.arch/amd64-entry-value-inline.c
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..f7fefb8
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/gdb/testsuite/gdb.arch/amd64-entry-value-inline.c
|
|
||||||
@@ -0,0 +1,50 @@
|
|
||||||
+/* This testcase is part of GDB, the GNU debugger.
|
|
||||||
+
|
|
||||||
+ Copyright 2012 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 3 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, see <http://www.gnu.org/licenses/>. */
|
|
||||||
+
|
|
||||||
+static volatile int v;
|
|
||||||
+
|
|
||||||
+static __attribute__((noinline, noclone)) void
|
|
||||||
+fn1 (int x)
|
|
||||||
+{
|
|
||||||
+ v++;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int
|
|
||||||
+fn2 (int x, int y)
|
|
||||||
+{
|
|
||||||
+ if (y)
|
|
||||||
+ {
|
|
||||||
+ fn1 (x);
|
|
||||||
+ y = -2 + x; /* break-here */
|
|
||||||
+ y = y * y * y + y;
|
|
||||||
+ fn1 (x + y);
|
|
||||||
+ }
|
|
||||||
+ return x;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+__attribute__((noinline, noclone)) int
|
|
||||||
+fn3 (int x, int y)
|
|
||||||
+{
|
|
||||||
+ return fn2 (x, y);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+int
|
|
||||||
+main ()
|
|
||||||
+{
|
|
||||||
+ fn3 (6, 25);
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
diff --git a/gdb/testsuite/gdb.arch/amd64-entry-value-inline.exp b/gdb/testsuite/gdb.arch/amd64-entry-value-inline.exp
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..6aa92c1
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/gdb/testsuite/gdb.arch/amd64-entry-value-inline.exp
|
|
||||||
@@ -0,0 +1,40 @@
|
|
||||||
+# Copyright (C) 2012 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 3 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, see <http://www.gnu.org/licenses/>.
|
|
||||||
+
|
|
||||||
+set opts {}
|
|
||||||
+standard_testfile .S
|
|
||||||
+
|
|
||||||
+if [info exists COMPILE] {
|
|
||||||
+ # make check RUNTESTFLAGS="gdb.arch/amd64-entry-value-inline.exp COMPILE=1"
|
|
||||||
+ standard_testfile
|
|
||||||
+ lappend opts debug optimize=-O2
|
|
||||||
+} elseif { ![istarget x86_64-*-* ] || ![is_lp64_target] } {
|
|
||||||
+ verbose "Skipping ${testfile}."
|
|
||||||
+ return
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} $opts] } {
|
|
||||||
+ return -1
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+if ![runto_main] {
|
|
||||||
+ return -1
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+set srcfile $testfile.c
|
|
||||||
+gdb_breakpoint [gdb_get_line_number "break-here"]
|
|
||||||
+
|
|
||||||
+gdb_continue_to_breakpoint "break-here" ".* break-here .*"
|
|
||||||
+gdb_test "p y" " = 25"
|
|
||||||
|
|
@ -1,508 +0,0 @@
|
|||||||
Index: gdb-7.4.50.20120602/gdb/f-lang.c
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.4.50.20120602.orig/gdb/f-lang.c 2012-03-02 20:29:00.000000000 +0100
|
|
||||||
+++ gdb-7.4.50.20120602/gdb/f-lang.c 2012-06-02 19:13:31.520050654 +0200
|
|
||||||
@@ -59,20 +59,6 @@ typedef struct saved_bf_symnum SAVED_BF,
|
|
||||||
/* Local functions */
|
|
||||||
|
|
||||||
extern void _initialize_f_language (void);
|
|
||||||
-#if 0
|
|
||||||
-static void clear_function_list (void);
|
|
||||||
-static long get_bf_for_fcn (long);
|
|
||||||
-static void clear_bf_list (void);
|
|
||||||
-static void patch_all_commons_by_name (char *, CORE_ADDR, int);
|
|
||||||
-static SAVED_F77_COMMON_PTR find_first_common_named (char *);
|
|
||||||
-static void add_common_entry (struct symbol *);
|
|
||||||
-static void add_common_block (char *, CORE_ADDR, int, char *);
|
|
||||||
-static SAVED_FUNCTION *allocate_saved_function_node (void);
|
|
||||||
-static SAVED_BF_PTR allocate_saved_bf_node (void);
|
|
||||||
-static COMMON_ENTRY_PTR allocate_common_entry_node (void);
|
|
||||||
-static SAVED_F77_COMMON_PTR allocate_saved_f77_common_node (void);
|
|
||||||
-static void patch_common_entries (SAVED_F77_COMMON_PTR, CORE_ADDR, int);
|
|
||||||
-#endif
|
|
||||||
|
|
||||||
static void f_printchar (int c, struct type *type, struct ui_file * stream);
|
|
||||||
static void f_emit_char (int c, struct type *type,
|
|
||||||
@@ -385,185 +371,7 @@ _initialize_f_language (void)
|
|
||||||
add_language (&f_language_defn);
|
|
||||||
}
|
|
||||||
|
|
||||||
-#if 0
|
|
||||||
-static SAVED_BF_PTR
|
|
||||||
-allocate_saved_bf_node (void)
|
|
||||||
-{
|
|
||||||
- SAVED_BF_PTR new;
|
|
||||||
-
|
|
||||||
- new = (SAVED_BF_PTR) xmalloc (sizeof (SAVED_BF));
|
|
||||||
- return (new);
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-static SAVED_FUNCTION *
|
|
||||||
-allocate_saved_function_node (void)
|
|
||||||
-{
|
|
||||||
- SAVED_FUNCTION *new;
|
|
||||||
-
|
|
||||||
- new = (SAVED_FUNCTION *) xmalloc (sizeof (SAVED_FUNCTION));
|
|
||||||
- return (new);
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-static SAVED_F77_COMMON_PTR
|
|
||||||
-allocate_saved_f77_common_node (void)
|
|
||||||
-{
|
|
||||||
- SAVED_F77_COMMON_PTR new;
|
|
||||||
-
|
|
||||||
- new = (SAVED_F77_COMMON_PTR) xmalloc (sizeof (SAVED_F77_COMMON));
|
|
||||||
- return (new);
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-static COMMON_ENTRY_PTR
|
|
||||||
-allocate_common_entry_node (void)
|
|
||||||
-{
|
|
||||||
- COMMON_ENTRY_PTR new;
|
|
||||||
-
|
|
||||||
- new = (COMMON_ENTRY_PTR) xmalloc (sizeof (COMMON_ENTRY));
|
|
||||||
- return (new);
|
|
||||||
-}
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
SAVED_F77_COMMON_PTR head_common_list = NULL; /* Ptr to 1st saved COMMON */
|
|
||||||
-SAVED_F77_COMMON_PTR tail_common_list = NULL; /* Ptr to last saved COMMON */
|
|
||||||
-SAVED_F77_COMMON_PTR current_common = NULL; /* Ptr to current COMMON */
|
|
||||||
-
|
|
||||||
-#if 0
|
|
||||||
-static SAVED_BF_PTR saved_bf_list = NULL; /* Ptr to (.bf,function)
|
|
||||||
- list */
|
|
||||||
-static SAVED_BF_PTR saved_bf_list_end = NULL; /* Ptr to above list's end */
|
|
||||||
-static SAVED_BF_PTR current_head_bf_list = NULL; /* Current head of
|
|
||||||
- above list. */
|
|
||||||
-
|
|
||||||
-static SAVED_BF_PTR tmp_bf_ptr; /* Generic temporary for use
|
|
||||||
- in macros. */
|
|
||||||
-
|
|
||||||
-/* The following function simply enters a given common block onto
|
|
||||||
- the global common block chain. */
|
|
||||||
-
|
|
||||||
-static void
|
|
||||||
-add_common_block (char *name, CORE_ADDR offset, int secnum, char *func_stab)
|
|
||||||
-{
|
|
||||||
- SAVED_F77_COMMON_PTR tmp;
|
|
||||||
- char *c, *local_copy_func_stab;
|
|
||||||
-
|
|
||||||
- /* If the COMMON block we are trying to add has a blank
|
|
||||||
- name (i.e. "#BLNK_COM") then we set it to __BLANK
|
|
||||||
- because the darn "#" character makes GDB's input
|
|
||||||
- parser have fits. */
|
|
||||||
-
|
|
||||||
-
|
|
||||||
- if (strcmp (name, BLANK_COMMON_NAME_ORIGINAL) == 0
|
|
||||||
- || strcmp (name, BLANK_COMMON_NAME_MF77) == 0)
|
|
||||||
- {
|
|
||||||
-
|
|
||||||
- xfree (name);
|
|
||||||
- name = alloca (strlen (BLANK_COMMON_NAME_LOCAL) + 1);
|
|
||||||
- strcpy (name, BLANK_COMMON_NAME_LOCAL);
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- tmp = allocate_saved_f77_common_node ();
|
|
||||||
-
|
|
||||||
- local_copy_func_stab = xmalloc (strlen (func_stab) + 1);
|
|
||||||
- strcpy (local_copy_func_stab, func_stab);
|
|
||||||
-
|
|
||||||
- tmp->name = xmalloc (strlen (name) + 1);
|
|
||||||
-
|
|
||||||
- /* local_copy_func_stab is a stabstring, let us first extract the
|
|
||||||
- function name from the stab by NULLing out the ':' character. */
|
|
||||||
-
|
|
||||||
-
|
|
||||||
- c = NULL;
|
|
||||||
- c = strchr (local_copy_func_stab, ':');
|
|
||||||
-
|
|
||||||
- if (c)
|
|
||||||
- *c = '\0';
|
|
||||||
- else
|
|
||||||
- error (_("Malformed function STAB found in add_common_block()"));
|
|
||||||
-
|
|
||||||
-
|
|
||||||
- tmp->owning_function = xmalloc (strlen (local_copy_func_stab) + 1);
|
|
||||||
-
|
|
||||||
- strcpy (tmp->owning_function, local_copy_func_stab);
|
|
||||||
-
|
|
||||||
- strcpy (tmp->name, name);
|
|
||||||
- tmp->offset = offset;
|
|
||||||
- tmp->next = NULL;
|
|
||||||
- tmp->entries = NULL;
|
|
||||||
- tmp->secnum = secnum;
|
|
||||||
-
|
|
||||||
- current_common = tmp;
|
|
||||||
-
|
|
||||||
- if (head_common_list == NULL)
|
|
||||||
- {
|
|
||||||
- head_common_list = tail_common_list = tmp;
|
|
||||||
- }
|
|
||||||
- else
|
|
||||||
- {
|
|
||||||
- tail_common_list->next = tmp;
|
|
||||||
- tail_common_list = tmp;
|
|
||||||
- }
|
|
||||||
-}
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
-/* The following function simply enters a given common entry onto
|
|
||||||
- the "current_common" block that has been saved away. */
|
|
||||||
-
|
|
||||||
-#if 0
|
|
||||||
-static void
|
|
||||||
-add_common_entry (struct symbol *entry_sym_ptr)
|
|
||||||
-{
|
|
||||||
- COMMON_ENTRY_PTR tmp;
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
- /* The order of this list is important, since
|
|
||||||
- we expect the entries to appear in decl.
|
|
||||||
- order when we later issue "info common" calls. */
|
|
||||||
-
|
|
||||||
- tmp = allocate_common_entry_node ();
|
|
||||||
-
|
|
||||||
- tmp->next = NULL;
|
|
||||||
- tmp->symbol = entry_sym_ptr;
|
|
||||||
-
|
|
||||||
- if (current_common == NULL)
|
|
||||||
- error (_("Attempt to add COMMON entry with no block open!"));
|
|
||||||
- else
|
|
||||||
- {
|
|
||||||
- if (current_common->entries == NULL)
|
|
||||||
- {
|
|
||||||
- current_common->entries = tmp;
|
|
||||||
- current_common->end_of_entries = tmp;
|
|
||||||
- }
|
|
||||||
- else
|
|
||||||
- {
|
|
||||||
- current_common->end_of_entries->next = tmp;
|
|
||||||
- current_common->end_of_entries = tmp;
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
-}
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
-/* This routine finds the first encountred COMMON block named "name". */
|
|
||||||
-
|
|
||||||
-#if 0
|
|
||||||
-static SAVED_F77_COMMON_PTR
|
|
||||||
-find_first_common_named (char *name)
|
|
||||||
-{
|
|
||||||
-
|
|
||||||
- SAVED_F77_COMMON_PTR tmp;
|
|
||||||
-
|
|
||||||
- tmp = head_common_list;
|
|
||||||
-
|
|
||||||
- while (tmp != NULL)
|
|
||||||
- {
|
|
||||||
- if (strcmp (tmp->name, name) == 0)
|
|
||||||
- return (tmp);
|
|
||||||
- else
|
|
||||||
- tmp = tmp->next;
|
|
||||||
- }
|
|
||||||
- return (NULL);
|
|
||||||
-}
|
|
||||||
-#endif
|
|
||||||
|
|
||||||
/* This routine finds the first encountred COMMON block named "name"
|
|
||||||
that belongs to function funcname. */
|
|
||||||
@@ -586,193 +394,3 @@ find_common_for_function (const char *na
|
|
||||||
}
|
|
||||||
return (NULL);
|
|
||||||
}
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-#if 0
|
|
||||||
-
|
|
||||||
-/* The following function is called to patch up the offsets
|
|
||||||
- for the statics contained in the COMMON block named
|
|
||||||
- "name." */
|
|
||||||
-
|
|
||||||
-static void
|
|
||||||
-patch_common_entries (SAVED_F77_COMMON_PTR blk, CORE_ADDR offset, int secnum)
|
|
||||||
-{
|
|
||||||
- COMMON_ENTRY_PTR entry;
|
|
||||||
-
|
|
||||||
- blk->offset = offset; /* Keep this around for future use. */
|
|
||||||
-
|
|
||||||
- entry = blk->entries;
|
|
||||||
-
|
|
||||||
- while (entry != NULL)
|
|
||||||
- {
|
|
||||||
- SYMBOL_VALUE (entry->symbol) += offset;
|
|
||||||
- SYMBOL_SECTION (entry->symbol) = secnum;
|
|
||||||
-
|
|
||||||
- entry = entry->next;
|
|
||||||
- }
|
|
||||||
- blk->secnum = secnum;
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-/* Patch all commons named "name" that need patching.Since COMMON
|
|
||||||
- blocks occur with relative infrequency, we simply do a linear scan on
|
|
||||||
- the name. Eventually, the best way to do this will be a
|
|
||||||
- hashed-lookup. Secnum is the section number for the .bss section
|
|
||||||
- (which is where common data lives). */
|
|
||||||
-
|
|
||||||
-static void
|
|
||||||
-patch_all_commons_by_name (char *name, CORE_ADDR offset, int secnum)
|
|
||||||
-{
|
|
||||||
-
|
|
||||||
- SAVED_F77_COMMON_PTR tmp;
|
|
||||||
-
|
|
||||||
- /* For blank common blocks, change the canonical reprsentation
|
|
||||||
- of a blank name */
|
|
||||||
-
|
|
||||||
- if (strcmp (name, BLANK_COMMON_NAME_ORIGINAL) == 0
|
|
||||||
- || strcmp (name, BLANK_COMMON_NAME_MF77) == 0)
|
|
||||||
- {
|
|
||||||
- xfree (name);
|
|
||||||
- name = alloca (strlen (BLANK_COMMON_NAME_LOCAL) + 1);
|
|
||||||
- strcpy (name, BLANK_COMMON_NAME_LOCAL);
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- tmp = head_common_list;
|
|
||||||
-
|
|
||||||
- while (tmp != NULL)
|
|
||||||
- {
|
|
||||||
- if (COMMON_NEEDS_PATCHING (tmp))
|
|
||||||
- if (strcmp (tmp->name, name) == 0)
|
|
||||||
- patch_common_entries (tmp, offset, secnum);
|
|
||||||
-
|
|
||||||
- tmp = tmp->next;
|
|
||||||
- }
|
|
||||||
-}
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
-/* This macro adds the symbol-number for the start of the function
|
|
||||||
- (the symbol number of the .bf) referenced by symnum_fcn to a
|
|
||||||
- list. This list, in reality should be a FIFO queue but since
|
|
||||||
- #line pragmas sometimes cause line ranges to get messed up
|
|
||||||
- we simply create a linear list. This list can then be searched
|
|
||||||
- first by a queueing algorithm and upon failure fall back to
|
|
||||||
- a linear scan. */
|
|
||||||
-
|
|
||||||
-#if 0
|
|
||||||
-#define ADD_BF_SYMNUM(bf_sym,fcn_sym) \
|
|
||||||
- \
|
|
||||||
- if (saved_bf_list == NULL) \
|
|
||||||
-{ \
|
|
||||||
- tmp_bf_ptr = allocate_saved_bf_node(); \
|
|
||||||
- \
|
|
||||||
- tmp_bf_ptr->symnum_bf = (bf_sym); \
|
|
||||||
- tmp_bf_ptr->symnum_fcn = (fcn_sym); \
|
|
||||||
- tmp_bf_ptr->next = NULL; \
|
|
||||||
- \
|
|
||||||
- current_head_bf_list = saved_bf_list = tmp_bf_ptr; \
|
|
||||||
- saved_bf_list_end = tmp_bf_ptr; \
|
|
||||||
- } \
|
|
||||||
-else \
|
|
||||||
-{ \
|
|
||||||
- tmp_bf_ptr = allocate_saved_bf_node(); \
|
|
||||||
- \
|
|
||||||
- tmp_bf_ptr->symnum_bf = (bf_sym); \
|
|
||||||
- tmp_bf_ptr->symnum_fcn = (fcn_sym); \
|
|
||||||
- tmp_bf_ptr->next = NULL; \
|
|
||||||
- \
|
|
||||||
- saved_bf_list_end->next = tmp_bf_ptr; \
|
|
||||||
- saved_bf_list_end = tmp_bf_ptr; \
|
|
||||||
- }
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
-/* This function frees the entire (.bf,function) list. */
|
|
||||||
-
|
|
||||||
-#if 0
|
|
||||||
-static void
|
|
||||||
-clear_bf_list (void)
|
|
||||||
-{
|
|
||||||
-
|
|
||||||
- SAVED_BF_PTR tmp = saved_bf_list;
|
|
||||||
- SAVED_BF_PTR next = NULL;
|
|
||||||
-
|
|
||||||
- while (tmp != NULL)
|
|
||||||
- {
|
|
||||||
- next = tmp->next;
|
|
||||||
- xfree (tmp);
|
|
||||||
- tmp = next;
|
|
||||||
- }
|
|
||||||
- saved_bf_list = NULL;
|
|
||||||
-}
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
-int global_remote_debug;
|
|
||||||
-
|
|
||||||
-#if 0
|
|
||||||
-
|
|
||||||
-static long
|
|
||||||
-get_bf_for_fcn (long the_function)
|
|
||||||
-{
|
|
||||||
- SAVED_BF_PTR tmp;
|
|
||||||
- int nprobes = 0;
|
|
||||||
-
|
|
||||||
- /* First use a simple queuing algorithm (i.e. look and see if the
|
|
||||||
- item at the head of the queue is the one you want). */
|
|
||||||
-
|
|
||||||
- if (saved_bf_list == NULL)
|
|
||||||
- internal_error (__FILE__, __LINE__,
|
|
||||||
- _("cannot get .bf node off empty list"));
|
|
||||||
-
|
|
||||||
- if (current_head_bf_list != NULL)
|
|
||||||
- if (current_head_bf_list->symnum_fcn == the_function)
|
|
||||||
- {
|
|
||||||
- if (global_remote_debug)
|
|
||||||
- fprintf_unfiltered (gdb_stderr, "*");
|
|
||||||
-
|
|
||||||
- tmp = current_head_bf_list;
|
|
||||||
- current_head_bf_list = current_head_bf_list->next;
|
|
||||||
- return (tmp->symnum_bf);
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- /* If the above did not work (probably because #line directives were
|
|
||||||
- used in the sourcefile and they messed up our internal tables) we now do
|
|
||||||
- the ugly linear scan. */
|
|
||||||
-
|
|
||||||
- if (global_remote_debug)
|
|
||||||
- fprintf_unfiltered (gdb_stderr, "\ndefaulting to linear scan\n");
|
|
||||||
-
|
|
||||||
- nprobes = 0;
|
|
||||||
- tmp = saved_bf_list;
|
|
||||||
- while (tmp != NULL)
|
|
||||||
- {
|
|
||||||
- nprobes++;
|
|
||||||
- if (tmp->symnum_fcn == the_function)
|
|
||||||
- {
|
|
||||||
- if (global_remote_debug)
|
|
||||||
- fprintf_unfiltered (gdb_stderr, "Found in %d probes\n", nprobes);
|
|
||||||
- current_head_bf_list = tmp->next;
|
|
||||||
- return (tmp->symnum_bf);
|
|
||||||
- }
|
|
||||||
- tmp = tmp->next;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- return (-1);
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-static SAVED_FUNCTION_PTR saved_function_list = NULL;
|
|
||||||
-static SAVED_FUNCTION_PTR saved_function_list_end = NULL;
|
|
||||||
-
|
|
||||||
-static void
|
|
||||||
-clear_function_list (void)
|
|
||||||
-{
|
|
||||||
- SAVED_FUNCTION_PTR tmp = saved_function_list;
|
|
||||||
- SAVED_FUNCTION_PTR next = NULL;
|
|
||||||
-
|
|
||||||
- while (tmp != NULL)
|
|
||||||
- {
|
|
||||||
- next = tmp->next;
|
|
||||||
- xfree (tmp);
|
|
||||||
- tmp = next;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- saved_function_list = NULL;
|
|
||||||
-}
|
|
||||||
-#endif
|
|
||||||
Index: gdb-7.4.50.20120602/gdb/f-lang.h
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.4.50.20120602.orig/gdb/f-lang.h 2012-06-02 19:11:54.000000000 +0200
|
|
||||||
+++ gdb-7.4.50.20120602/gdb/f-lang.h 2012-06-02 19:13:55.345317970 +0200
|
|
||||||
@@ -76,15 +76,10 @@ typedef struct saved_f77_common SAVED_F7
|
|
||||||
typedef struct common_entry COMMON_ENTRY, *COMMON_ENTRY_PTR;
|
|
||||||
|
|
||||||
extern SAVED_F77_COMMON_PTR head_common_list; /* Ptr to 1st saved COMMON */
|
|
||||||
-extern SAVED_F77_COMMON_PTR tail_common_list; /* Ptr to last saved COMMON */
|
|
||||||
-extern SAVED_F77_COMMON_PTR current_common; /* Ptr to current COMMON */
|
|
||||||
|
|
||||||
extern SAVED_F77_COMMON_PTR find_common_for_function (const char *,
|
|
||||||
const char *);
|
|
||||||
|
|
||||||
-#define UNINITIALIZED_SECNUM -1
|
|
||||||
-#define COMMON_NEEDS_PATCHING(blk) ((blk)->secnum == UNINITIALIZED_SECNUM)
|
|
||||||
-
|
|
||||||
#define BLANK_COMMON_NAME_ORIGINAL "#BLNK_COM" /* XLF assigned */
|
|
||||||
#define BLANK_COMMON_NAME_MF77 "__BLNK__" /* MF77 assigned */
|
|
||||||
#define BLANK_COMMON_NAME_LOCAL "__BLANK" /* Local GDB */
|
|
||||||
Index: gdb-7.4.50.20120602/gdb/f-valprint.c
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.4.50.20120602.orig/gdb/f-valprint.c 2012-06-02 19:11:54.000000000 +0200
|
|
||||||
+++ gdb-7.4.50.20120602/gdb/f-valprint.c 2012-06-02 19:14:11.625313432 +0200
|
|
||||||
@@ -35,10 +35,6 @@
|
|
||||||
#include "command.h"
|
|
||||||
#include "block.h"
|
|
||||||
|
|
||||||
-#if 0
|
|
||||||
-static int there_is_a_visible_common_named (char *);
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
extern void _initialize_f_valprint (void);
|
|
||||||
static void info_common_command (char *, int);
|
|
||||||
static void list_all_visible_commons (const char *);
|
|
||||||
@@ -535,67 +531,6 @@ info_common_command (char *comname, int
|
|
||||||
comname, funname);
|
|
||||||
}
|
|
||||||
|
|
||||||
-/* This function is used to determine whether there is a
|
|
||||||
- F77 common block visible at the current scope called 'comname'. */
|
|
||||||
-
|
|
||||||
-#if 0
|
|
||||||
-static int
|
|
||||||
-there_is_a_visible_common_named (char *comname)
|
|
||||||
-{
|
|
||||||
- SAVED_F77_COMMON_PTR the_common;
|
|
||||||
- struct frame_info *fi;
|
|
||||||
- char *funname = 0;
|
|
||||||
- struct symbol *func;
|
|
||||||
-
|
|
||||||
- if (comname == NULL)
|
|
||||||
- error (_("Cannot deal with NULL common name!"));
|
|
||||||
-
|
|
||||||
- fi = get_selected_frame (_("No frame selected"));
|
|
||||||
-
|
|
||||||
- /* The following is generally ripped off from stack.c's routine
|
|
||||||
- print_frame_info(). */
|
|
||||||
-
|
|
||||||
- func = find_pc_function (fi->pc);
|
|
||||||
- if (func)
|
|
||||||
- {
|
|
||||||
- /* In certain pathological cases, the symtabs give the wrong
|
|
||||||
- function (when we are in the first function in a file which
|
|
||||||
- is compiled without debugging symbols, the previous function
|
|
||||||
- is compiled with debugging symbols, and the "foo.o" symbol
|
|
||||||
- that is supposed to tell us where the file with debugging symbols
|
|
||||||
- ends has been truncated by ar because it is longer than 15
|
|
||||||
- characters).
|
|
||||||
-
|
|
||||||
- So look in the minimal symbol tables as well, and if it comes
|
|
||||||
- up with a larger address for the function use that instead.
|
|
||||||
- I don't think this can ever cause any problems; there shouldn't
|
|
||||||
- be any minimal symbols in the middle of a function.
|
|
||||||
- FIXME: (Not necessarily true. What about text labels?) */
|
|
||||||
-
|
|
||||||
- struct minimal_symbol *msymbol = lookup_minimal_symbol_by_pc (fi->pc);
|
|
||||||
-
|
|
||||||
- if (msymbol != NULL
|
|
||||||
- && (SYMBOL_VALUE_ADDRESS (msymbol)
|
|
||||||
- > BLOCK_START (SYMBOL_BLOCK_VALUE (func))))
|
|
||||||
- funname = SYMBOL_LINKAGE_NAME (msymbol);
|
|
||||||
- else
|
|
||||||
- funname = SYMBOL_LINKAGE_NAME (func);
|
|
||||||
- }
|
|
||||||
- else
|
|
||||||
- {
|
|
||||||
- struct minimal_symbol *msymbol =
|
|
||||||
- lookup_minimal_symbol_by_pc (fi->pc);
|
|
||||||
-
|
|
||||||
- if (msymbol != NULL)
|
|
||||||
- funname = SYMBOL_LINKAGE_NAME (msymbol);
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- the_common = find_common_for_function (comname, funname);
|
|
||||||
-
|
|
||||||
- return (the_common ? 1 : 0);
|
|
||||||
-}
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
void
|
|
||||||
_initialize_f_valprint (void)
|
|
||||||
{
|
|
@ -1,598 +0,0 @@
|
|||||||
Index: gdb-7.4.91.20120801/gdb/dwarf2read.c
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.4.91.20120801.orig/gdb/dwarf2read.c 2012-08-01 18:36:51.000000000 +0200
|
|
||||||
+++ gdb-7.4.91.20120801/gdb/dwarf2read.c 2012-08-01 18:38:54.201540500 +0200
|
|
||||||
@@ -11073,12 +11073,14 @@ read_set_type (struct die_info *die, str
|
|
||||||
return set_die_type (die, set_type, cu);
|
|
||||||
}
|
|
||||||
|
|
||||||
-/* First cut: install each common block member as a global variable. */
|
|
||||||
+/* Create appropriate locally-scoped variables for all the DW_TAG_common_block
|
|
||||||
+ entries. Create also TYPE_CODE_STRUCT listing all such variables to be
|
|
||||||
+ available for `info common'. COMMON_BLOCK_DOMAIN is used to sepate the
|
|
||||||
+ common blocks name namespace from regular variable names. */
|
|
||||||
|
|
||||||
static void
|
|
||||||
read_common_block (struct die_info *die, struct dwarf2_cu *cu)
|
|
||||||
{
|
|
||||||
- struct die_info *child_die;
|
|
||||||
struct attribute *attr;
|
|
||||||
struct symbol *sym;
|
|
||||||
CORE_ADDR base = (CORE_ADDR) 0;
|
|
||||||
@@ -11103,20 +11105,67 @@ read_common_block (struct die_info *die,
|
|
||||||
}
|
|
||||||
if (die->child != NULL)
|
|
||||||
{
|
|
||||||
+ struct objfile *objfile = cu->objfile;
|
|
||||||
+ struct die_info *child_die;
|
|
||||||
+ struct type *type;
|
|
||||||
+ struct field *field;
|
|
||||||
+ char *name;
|
|
||||||
+ struct symbol *sym;
|
|
||||||
+
|
|
||||||
+ type = alloc_type (objfile);
|
|
||||||
+ TYPE_CODE (type) = TYPE_CODE_STRUCT;
|
|
||||||
+ /* Artificial type to be used only by `info common'. */
|
|
||||||
+ TYPE_NAME (type) = "<common>";
|
|
||||||
+
|
|
||||||
+ child_die = die->child;
|
|
||||||
+ while (child_die && child_die->tag)
|
|
||||||
+ {
|
|
||||||
+ TYPE_NFIELDS (type)++;
|
|
||||||
+ child_die = sibling_die (child_die);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ TYPE_FIELDS (type) = obstack_alloc (&objfile->objfile_obstack,
|
|
||||||
+ sizeof (*TYPE_FIELDS (type))
|
|
||||||
+ * TYPE_NFIELDS (type));
|
|
||||||
+ memset (TYPE_FIELDS (type), 0, sizeof (*TYPE_FIELDS (type))
|
|
||||||
+ * TYPE_NFIELDS (type));
|
|
||||||
+
|
|
||||||
+ field = TYPE_FIELDS (type);
|
|
||||||
child_die = die->child;
|
|
||||||
while (child_die && child_die->tag)
|
|
||||||
{
|
|
||||||
LONGEST offset;
|
|
||||||
|
|
||||||
+ /* Create the symbol in the DW_TAG_common_block block in the current
|
|
||||||
+ symbol scope. */
|
|
||||||
sym = new_symbol (child_die, NULL, cu);
|
|
||||||
+
|
|
||||||
+ /* Undocumented in DWARF3, when it can be present? */
|
|
||||||
if (sym != NULL
|
|
||||||
&& handle_data_member_location (child_die, cu, &offset))
|
|
||||||
{
|
|
||||||
SYMBOL_VALUE_ADDRESS (sym) = base + offset;
|
|
||||||
add_symbol_to_list (sym, &global_symbols);
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ if (SYMBOL_CLASS (sym) == LOC_STATIC)
|
|
||||||
+ SET_FIELD_PHYSADDR (*field, SYMBOL_VALUE_ADDRESS (sym));
|
|
||||||
+ else
|
|
||||||
+ SET_FIELD_PHYSNAME (*field, SYMBOL_LINKAGE_NAME (sym));
|
|
||||||
+ FIELD_TYPE (*field) = SYMBOL_TYPE (sym);
|
|
||||||
+ FIELD_NAME (*field) = SYMBOL_NATURAL_NAME (sym);
|
|
||||||
+ field++;
|
|
||||||
child_die = sibling_die (child_die);
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ /* TYPE_LENGTH (type) is left 0 - it is only a virtual structure even
|
|
||||||
+ with no consecutive address space. */
|
|
||||||
+
|
|
||||||
+ sym = new_symbol (die, type, cu);
|
|
||||||
+ /* SYMBOL_VALUE_ADDRESS never gets used as all its fields are static. */
|
|
||||||
+ SYMBOL_VALUE_ADDRESS (sym) = base;
|
|
||||||
+
|
|
||||||
+ set_die_type (die, type, cu);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -15155,6 +15204,13 @@ new_symbol_full (struct die_info *die, s
|
|
||||||
{
|
|
||||||
var_decode_location (attr, sym, cu);
|
|
||||||
attr2 = dwarf2_attr (die, DW_AT_external, cu);
|
|
||||||
+
|
|
||||||
+ /* Fortran explicitly imports any global symbols to the local
|
|
||||||
+ scope by DW_TAG_common_block. */
|
|
||||||
+ if (cu->language == language_fortran && die->parent
|
|
||||||
+ && die->parent->tag == DW_TAG_common_block)
|
|
||||||
+ attr2 = NULL;
|
|
||||||
+
|
|
||||||
if (SYMBOL_CLASS (sym) == LOC_STATIC
|
|
||||||
&& SYMBOL_VALUE_ADDRESS (sym) == 0
|
|
||||||
&& !dwarf2_per_objfile->has_section_at_zero)
|
|
||||||
@@ -15319,6 +15375,11 @@ new_symbol_full (struct die_info *die, s
|
|
||||||
SYMBOL_CLASS (sym) = LOC_TYPEDEF;
|
|
||||||
list_to_add = &global_symbols;
|
|
||||||
break;
|
|
||||||
+ case DW_TAG_common_block:
|
|
||||||
+ SYMBOL_CLASS (sym) = LOC_STATIC;
|
|
||||||
+ SYMBOL_DOMAIN (sym) = COMMON_BLOCK_DOMAIN;
|
|
||||||
+ add_symbol_to_list (sym, cu->list_in_scope);
|
|
||||||
+ break;
|
|
||||||
default:
|
|
||||||
/* Not a tag we recognize. Hopefully we aren't processing
|
|
||||||
trash data, but since we must specifically ignore things
|
|
||||||
Index: gdb-7.4.91.20120801/gdb/f-lang.c
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.4.91.20120801.orig/gdb/f-lang.c 2012-08-01 18:38:24.000000000 +0200
|
|
||||||
+++ gdb-7.4.91.20120801/gdb/f-lang.c 2012-08-01 18:38:54.202540495 +0200
|
|
||||||
@@ -370,27 +370,3 @@ _initialize_f_language (void)
|
|
||||||
|
|
||||||
add_language (&f_language_defn);
|
|
||||||
}
|
|
||||||
-
|
|
||||||
-SAVED_F77_COMMON_PTR head_common_list = NULL; /* Ptr to 1st saved COMMON */
|
|
||||||
-
|
|
||||||
-/* This routine finds the first encountred COMMON block named "name"
|
|
||||||
- that belongs to function funcname. */
|
|
||||||
-
|
|
||||||
-SAVED_F77_COMMON_PTR
|
|
||||||
-find_common_for_function (const char *name, const char *funcname)
|
|
||||||
-{
|
|
||||||
-
|
|
||||||
- SAVED_F77_COMMON_PTR tmp;
|
|
||||||
-
|
|
||||||
- tmp = head_common_list;
|
|
||||||
-
|
|
||||||
- while (tmp != NULL)
|
|
||||||
- {
|
|
||||||
- if (strcmp (tmp->name, name) == 0
|
|
||||||
- && strcmp (tmp->owning_function, funcname) == 0)
|
|
||||||
- return (tmp);
|
|
||||||
- else
|
|
||||||
- tmp = tmp->next;
|
|
||||||
- }
|
|
||||||
- return (NULL);
|
|
||||||
-}
|
|
||||||
Index: gdb-7.4.91.20120801/gdb/f-lang.h
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.4.91.20120801.orig/gdb/f-lang.h 2012-08-01 18:38:24.000000000 +0200
|
|
||||||
+++ gdb-7.4.91.20120801/gdb/f-lang.h 2012-08-01 18:38:54.203540489 +0200
|
|
||||||
@@ -52,37 +52,8 @@ enum f90_range_type
|
|
||||||
NONE_BOUND_DEFAULT /* "(low:high)" */
|
|
||||||
};
|
|
||||||
|
|
||||||
-struct common_entry
|
|
||||||
- {
|
|
||||||
- struct symbol *symbol; /* The symbol node corresponding
|
|
||||||
- to this component */
|
|
||||||
- struct common_entry *next; /* The next component */
|
|
||||||
- };
|
|
||||||
-
|
|
||||||
-struct saved_f77_common
|
|
||||||
- {
|
|
||||||
- char *name; /* Name of COMMON */
|
|
||||||
- char *owning_function; /* Name of parent function */
|
|
||||||
- int secnum; /* Section # of .bss */
|
|
||||||
- CORE_ADDR offset; /* Offset from .bss for
|
|
||||||
- this block */
|
|
||||||
- struct common_entry *entries; /* List of block's components */
|
|
||||||
- struct common_entry *end_of_entries; /* ptr. to end of components */
|
|
||||||
- struct saved_f77_common *next; /* Next saved COMMON block */
|
|
||||||
- };
|
|
||||||
-
|
|
||||||
-typedef struct saved_f77_common SAVED_F77_COMMON, *SAVED_F77_COMMON_PTR;
|
|
||||||
-
|
|
||||||
-typedef struct common_entry COMMON_ENTRY, *COMMON_ENTRY_PTR;
|
|
||||||
-
|
|
||||||
-extern SAVED_F77_COMMON_PTR head_common_list; /* Ptr to 1st saved COMMON */
|
|
||||||
-
|
|
||||||
-extern SAVED_F77_COMMON_PTR find_common_for_function (const char *,
|
|
||||||
- const char *);
|
|
||||||
-
|
|
||||||
#define BLANK_COMMON_NAME_ORIGINAL "#BLNK_COM" /* XLF assigned */
|
|
||||||
#define BLANK_COMMON_NAME_MF77 "__BLNK__" /* MF77 assigned */
|
|
||||||
-#define BLANK_COMMON_NAME_LOCAL "__BLANK" /* Local GDB */
|
|
||||||
|
|
||||||
/* When reasonable array bounds cannot be fetched, such as when
|
|
||||||
you ask to 'mt print symbols' and there is no stack frame and
|
|
||||||
Index: gdb-7.4.91.20120801/gdb/f-valprint.c
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.4.91.20120801.orig/gdb/f-valprint.c 2012-08-01 18:38:24.000000000 +0200
|
|
||||||
+++ gdb-7.4.91.20120801/gdb/f-valprint.c 2012-08-01 18:41:26.411698186 +0200
|
|
||||||
@@ -34,10 +34,11 @@
|
|
||||||
#include "gdbcore.h"
|
|
||||||
#include "command.h"
|
|
||||||
#include "block.h"
|
|
||||||
+#include "dictionary.h"
|
|
||||||
+#include "gdb_assert.h"
|
|
||||||
|
|
||||||
extern void _initialize_f_valprint (void);
|
|
||||||
static void info_common_command (char *, int);
|
|
||||||
-static void list_all_visible_commons (const char *);
|
|
||||||
static void f77_create_arrayprint_offset_tbl (struct type *,
|
|
||||||
struct ui_file *);
|
|
||||||
static void f77_get_dynamic_length_of_aggregate (struct type *);
|
|
||||||
@@ -420,22 +421,53 @@ f_val_print (struct type *type, const gd
|
|
||||||
gdb_flush (stream);
|
|
||||||
}
|
|
||||||
|
|
||||||
-static void
|
|
||||||
-list_all_visible_commons (const char *funname)
|
|
||||||
+static int
|
|
||||||
+info_common_command_for_block (struct block *block, const char *comname)
|
|
||||||
{
|
|
||||||
- SAVED_F77_COMMON_PTR tmp;
|
|
||||||
-
|
|
||||||
- tmp = head_common_list;
|
|
||||||
+ struct block_iterator iter;
|
|
||||||
+ struct symbol *sym;
|
|
||||||
+ int values_printed = 0;
|
|
||||||
+ const char *name;
|
|
||||||
+ struct value_print_options opts;
|
|
||||||
+
|
|
||||||
+ get_user_print_options (&opts);
|
|
||||||
+
|
|
||||||
+ ALL_BLOCK_SYMBOLS (block, iter, sym)
|
|
||||||
+ if (SYMBOL_DOMAIN (sym) == COMMON_BLOCK_DOMAIN)
|
|
||||||
+ {
|
|
||||||
+ struct type *type = SYMBOL_TYPE (sym);
|
|
||||||
+ int index;
|
|
||||||
+
|
|
||||||
+ gdb_assert (SYMBOL_CLASS (sym) == LOC_STATIC);
|
|
||||||
+ gdb_assert (TYPE_CODE (type) == TYPE_CODE_STRUCT);
|
|
||||||
+
|
|
||||||
+ if (comname && (!SYMBOL_LINKAGE_NAME (sym)
|
|
||||||
+ || strcmp (comname, SYMBOL_LINKAGE_NAME (sym)) != 0))
|
|
||||||
+ continue;
|
|
||||||
+
|
|
||||||
+ values_printed = 1;
|
|
||||||
+ if (SYMBOL_PRINT_NAME (sym))
|
|
||||||
+ printf_filtered (_("Contents of F77 COMMON block '%s':\n"),
|
|
||||||
+ SYMBOL_PRINT_NAME (sym));
|
|
||||||
+ else
|
|
||||||
+ printf_filtered (_("Contents of blank COMMON block:\n"));
|
|
||||||
+
|
|
||||||
+ for (index = 0; index < TYPE_NFIELDS (type); index++)
|
|
||||||
+ {
|
|
||||||
+ struct value *val;
|
|
||||||
+
|
|
||||||
+ gdb_assert (field_is_static (&TYPE_FIELD (type, index)));
|
|
||||||
+ val = value_static_field (type, index);
|
|
||||||
+
|
|
||||||
+ printf_filtered ("%s = ", TYPE_FIELD_NAME (type, index));
|
|
||||||
+ value_print (val, gdb_stdout, &opts);
|
|
||||||
+ putchar_filtered ('\n');
|
|
||||||
+ }
|
|
||||||
|
|
||||||
- printf_filtered (_("All COMMON blocks visible at this level:\n\n"));
|
|
||||||
-
|
|
||||||
- while (tmp != NULL)
|
|
||||||
- {
|
|
||||||
- if (strcmp (tmp->owning_function, funname) == 0)
|
|
||||||
- printf_filtered ("%s\n", tmp->name);
|
|
||||||
+ putchar_filtered ('\n');
|
|
||||||
+ }
|
|
||||||
|
|
||||||
- tmp = tmp->next;
|
|
||||||
- }
|
|
||||||
+ return values_printed;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* This function is used to print out the values in a given COMMON
|
|
||||||
@@ -445,11 +477,9 @@ list_all_visible_commons (const char *fu
|
|
||||||
static void
|
|
||||||
info_common_command (char *comname, int from_tty)
|
|
||||||
{
|
|
||||||
- SAVED_F77_COMMON_PTR the_common;
|
|
||||||
- COMMON_ENTRY_PTR entry;
|
|
||||||
struct frame_info *fi;
|
|
||||||
- const char *funname = 0;
|
|
||||||
- struct symbol *func;
|
|
||||||
+ struct block *block;
|
|
||||||
+ int values_printed = 0;
|
|
||||||
|
|
||||||
/* We have been told to display the contents of F77 COMMON
|
|
||||||
block supposedly visible in this function. Let us
|
|
||||||
@@ -461,87 +491,31 @@ info_common_command (char *comname, int
|
|
||||||
/* The following is generally ripped off from stack.c's routine
|
|
||||||
print_frame_info(). */
|
|
||||||
|
|
||||||
- func = find_pc_function (get_frame_pc (fi));
|
|
||||||
- if (func)
|
|
||||||
+ block = get_frame_block (fi, 0);
|
|
||||||
+ if (block == NULL)
|
|
||||||
{
|
|
||||||
- /* In certain pathological cases, the symtabs give the wrong
|
|
||||||
- function (when we are in the first function in a file which
|
|
||||||
- is compiled without debugging symbols, the previous function
|
|
||||||
- is compiled with debugging symbols, and the "foo.o" symbol
|
|
||||||
- that is supposed to tell us where the file with debugging symbols
|
|
||||||
- ends has been truncated by ar because it is longer than 15
|
|
||||||
- characters).
|
|
||||||
-
|
|
||||||
- So look in the minimal symbol tables as well, and if it comes
|
|
||||||
- up with a larger address for the function use that instead.
|
|
||||||
- I don't think this can ever cause any problems; there shouldn't
|
|
||||||
- be any minimal symbols in the middle of a function.
|
|
||||||
- FIXME: (Not necessarily true. What about text labels?) */
|
|
||||||
-
|
|
||||||
- struct minimal_symbol *msymbol =
|
|
||||||
- lookup_minimal_symbol_by_pc (get_frame_pc (fi));
|
|
||||||
-
|
|
||||||
- if (msymbol != NULL
|
|
||||||
- && (SYMBOL_VALUE_ADDRESS (msymbol)
|
|
||||||
- > BLOCK_START (SYMBOL_BLOCK_VALUE (func))))
|
|
||||||
- funname = SYMBOL_LINKAGE_NAME (msymbol);
|
|
||||||
- else
|
|
||||||
- funname = SYMBOL_LINKAGE_NAME (func);
|
|
||||||
- }
|
|
||||||
- else
|
|
||||||
- {
|
|
||||||
- struct minimal_symbol *msymbol =
|
|
||||||
- lookup_minimal_symbol_by_pc (get_frame_pc (fi));
|
|
||||||
-
|
|
||||||
- if (msymbol != NULL)
|
|
||||||
- funname = SYMBOL_LINKAGE_NAME (msymbol);
|
|
||||||
- else /* Got no 'funname', code below will fail. */
|
|
||||||
- error (_("No function found for frame."));
|
|
||||||
+ printf_filtered (_("No symbol table info available.\n"));
|
|
||||||
+ return;
|
|
||||||
}
|
|
||||||
|
|
||||||
- /* If comname is NULL, we assume the user wishes to see the
|
|
||||||
- which COMMON blocks are visible here and then return. */
|
|
||||||
-
|
|
||||||
- if (comname == 0)
|
|
||||||
+ while (block)
|
|
||||||
{
|
|
||||||
- list_all_visible_commons (funname);
|
|
||||||
- return;
|
|
||||||
+ if (info_common_command_for_block (block, comname))
|
|
||||||
+ values_printed = 1;
|
|
||||||
+ /* After handling the function's top-level block, stop. Don't
|
|
||||||
+ continue to its superblock, the block of per-file symbols. */
|
|
||||||
+ if (BLOCK_FUNCTION (block))
|
|
||||||
+ break;
|
|
||||||
+ block = BLOCK_SUPERBLOCK (block);
|
|
||||||
}
|
|
||||||
|
|
||||||
- the_common = find_common_for_function (comname, funname);
|
|
||||||
-
|
|
||||||
- if (the_common)
|
|
||||||
+ if (!values_printed)
|
|
||||||
{
|
|
||||||
- struct frame_id frame_id = get_frame_id (fi);
|
|
||||||
-
|
|
||||||
- if (strcmp (comname, BLANK_COMMON_NAME_LOCAL) == 0)
|
|
||||||
- printf_filtered (_("Contents of blank COMMON block:\n"));
|
|
||||||
+ if (comname)
|
|
||||||
+ printf_filtered (_("No common block '%s'.\n"), comname);
|
|
||||||
else
|
|
||||||
- printf_filtered (_("Contents of F77 COMMON block '%s':\n"), comname);
|
|
||||||
-
|
|
||||||
- printf_filtered ("\n");
|
|
||||||
- entry = the_common->entries;
|
|
||||||
-
|
|
||||||
- while (entry != NULL)
|
|
||||||
- {
|
|
||||||
- fi = frame_find_by_id (frame_id);
|
|
||||||
- if (fi == NULL)
|
|
||||||
- {
|
|
||||||
- warning (_("Unable to restore previously selected frame."));
|
|
||||||
- break;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- print_variable_and_value (NULL, entry->symbol, fi, gdb_stdout, 0);
|
|
||||||
-
|
|
||||||
- /* print_variable_and_value invalidates FI. */
|
|
||||||
- fi = NULL;
|
|
||||||
-
|
|
||||||
- entry = entry->next;
|
|
||||||
- }
|
|
||||||
+ printf_filtered (_("No common blocks.\n"));
|
|
||||||
}
|
|
||||||
- else
|
|
||||||
- printf_filtered (_("Cannot locate the common block %s in function '%s'\n"),
|
|
||||||
- comname, funname);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
Index: gdb-7.4.91.20120801/gdb/stack.c
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.4.91.20120801.orig/gdb/stack.c 2012-08-01 18:36:51.000000000 +0200
|
|
||||||
+++ gdb-7.4.91.20120801/gdb/stack.c 2012-08-01 18:38:54.206540471 +0200
|
|
||||||
@@ -1851,6 +1851,8 @@ iterate_over_block_locals (struct block
|
|
||||||
case LOC_COMPUTED:
|
|
||||||
if (SYMBOL_IS_ARGUMENT (sym))
|
|
||||||
break;
|
|
||||||
+ if (SYMBOL_DOMAIN (sym) == COMMON_BLOCK_DOMAIN)
|
|
||||||
+ break;
|
|
||||||
(*cb) (SYMBOL_PRINT_NAME (sym), sym, cb_data);
|
|
||||||
break;
|
|
||||||
|
|
||||||
Index: gdb-7.4.91.20120801/gdb/symtab.h
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.4.91.20120801.orig/gdb/symtab.h 2012-06-30 00:46:46.000000000 +0200
|
|
||||||
+++ gdb-7.4.91.20120801/gdb/symtab.h 2012-08-01 18:38:54.206540471 +0200
|
|
||||||
@@ -394,7 +394,10 @@ typedef enum domain_enum_tag
|
|
||||||
|
|
||||||
/* LABEL_DOMAIN may be used for names of labels (for gotos). */
|
|
||||||
|
|
||||||
- LABEL_DOMAIN
|
|
||||||
+ LABEL_DOMAIN,
|
|
||||||
+
|
|
||||||
+ /* Fortran common blocks. Their naming must be separate from VAR_DOMAIN. */
|
|
||||||
+ COMMON_BLOCK_DOMAIN
|
|
||||||
} domain_enum;
|
|
||||||
|
|
||||||
/* Searching domains, used for `search_symbols'. Element numbers are
|
|
||||||
Index: gdb-7.4.91.20120801/gdb/testsuite/gdb.fortran/common-block.exp
|
|
||||||
===================================================================
|
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
|
||||||
+++ gdb-7.4.91.20120801/gdb/testsuite/gdb.fortran/common-block.exp 2012-08-01 18:38:54.207540465 +0200
|
|
||||||
@@ -0,0 +1,101 @@
|
|
||||||
+# Copyright 2008 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.
|
|
||||||
+
|
|
||||||
+# This file was written by Jan Kratochvil <jan.kratochvil@redhat.com>.
|
|
||||||
+
|
|
||||||
+set testfile "common-block"
|
|
||||||
+set srcfile ${testfile}.f90
|
|
||||||
+set binfile ${objdir}/${subdir}/${testfile}
|
|
||||||
+
|
|
||||||
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f90 quiet}] != "" } {
|
|
||||||
+ untested "Couldn't compile ${srcfile}"
|
|
||||||
+ return -1
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+gdb_exit
|
|
||||||
+gdb_start
|
|
||||||
+gdb_reinitialize_dir $srcdir/$subdir
|
|
||||||
+gdb_load ${binfile}
|
|
||||||
+
|
|
||||||
+if ![runto MAIN__] then {
|
|
||||||
+ perror "couldn't run to breakpoint MAIN__"
|
|
||||||
+ continue
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+gdb_breakpoint [gdb_get_line_number "stop-here-out"]
|
|
||||||
+gdb_continue_to_breakpoint "stop-here-out"
|
|
||||||
+
|
|
||||||
+# Common block naming with source name /foo/:
|
|
||||||
+# .symtab DW_TAG_common_block's DW_AT_name
|
|
||||||
+# Intel Fortran foo_ foo_
|
|
||||||
+# GNU Fortran foo_ foo
|
|
||||||
+#set suffix "_"
|
|
||||||
+set suffix ""
|
|
||||||
+
|
|
||||||
+set int4 {(integer\(kind=4\)|INTEGER\(4\))}
|
|
||||||
+set real4 {(real\(kind=4\)|REAL\(4\))}
|
|
||||||
+set real8 {(real\(kind=8\)|REAL\(8\))}
|
|
||||||
+
|
|
||||||
+gdb_test "whatis foo$suffix" "No symbol \"foo$suffix\" in current context."
|
|
||||||
+gdb_test "ptype foo$suffix" "No symbol \"foo$suffix\" in current context."
|
|
||||||
+gdb_test "p foo$suffix" "No symbol \"foo$suffix\" in current context."
|
|
||||||
+gdb_test "whatis fo_o$suffix" "No symbol \"fo_o$suffix\" in current context."
|
|
||||||
+gdb_test "ptype fo_o$suffix" "No symbol \"fo_o$suffix\" in current context."
|
|
||||||
+gdb_test "p fo_o$suffix" "No symbol \"fo_o$suffix\" in current context."
|
|
||||||
+
|
|
||||||
+gdb_test "info locals" "ix_x = 11\r\niy_y = 22\r\niz_z = 33\r\nix = 1\r\niy = 2\r\niz = 3" "info locals out"
|
|
||||||
+gdb_test "info common" "Contents of F77 COMMON block 'fo_o':\r\nix_x = 11\r\niy_y = 22\r\niz_z = 33\r\n\r\nContents of F77 COMMON block 'foo':\r\nix = 1\r\niy = 2\r\niz = 3" "info common out"
|
|
||||||
+
|
|
||||||
+gdb_test "ptype ix" "type = $int4" "ptype ix out"
|
|
||||||
+gdb_test "ptype iy" "type = $real4" "ptype iy out"
|
|
||||||
+gdb_test "ptype iz" "type = $real8" "ptype iz out"
|
|
||||||
+gdb_test "ptype ix_x" "type = $int4" "ptype ix_x out"
|
|
||||||
+gdb_test "ptype iy_y" "type = $real4" "ptype iy_y out"
|
|
||||||
+gdb_test "ptype iz_z" "type = $real8" "ptype iz_z out"
|
|
||||||
+
|
|
||||||
+gdb_test "p ix" " = 1 *" "p ix out"
|
|
||||||
+gdb_test "p iy" " = 2 *" "p iy out"
|
|
||||||
+gdb_test "p iz" " = 3 *" "p iz out"
|
|
||||||
+gdb_test "p ix_x" " = 11 *" "p ix_x out"
|
|
||||||
+gdb_test "p iy_y" " = 22 *" "p iy_y out"
|
|
||||||
+gdb_test "p iz_z" " = 33 *" "p iz_z out"
|
|
||||||
+
|
|
||||||
+gdb_breakpoint [gdb_get_line_number "stop-here-in"]
|
|
||||||
+gdb_continue_to_breakpoint "stop-here-in"
|
|
||||||
+
|
|
||||||
+gdb_test "whatis foo$suffix" "No symbol \"foo$suffix\" in current context." "whatis foo$suffix in"
|
|
||||||
+gdb_test "ptype foo$suffix" "No symbol \"foo$suffix\" in current context." "ptype foo$suffix in"
|
|
||||||
+gdb_test "p foo$suffix" "No symbol \"foo$suffix\" in current context." "p foo$suffix in"
|
|
||||||
+gdb_test "whatis fo_o$suffix" "No symbol \"fo_o$suffix\" in current context." "whatis fo_o$suffix in"
|
|
||||||
+gdb_test "ptype fo_o$suffix" "No symbol \"fo_o$suffix\" in current context." "ptype fo_o$suffix in"
|
|
||||||
+gdb_test "p fo_o$suffix" "No symbol \"fo_o$suffix\" in current context." "p fo_o$suffix in"
|
|
||||||
+
|
|
||||||
+gdb_test "info locals" "ix = 11\r\niy2 = 22\r\niz = 33\r\nix_x = 1\r\niy_y = 2\r\niz_z2 = 3\r\niy = 5\r\niz_z = 55" "info locals in"
|
|
||||||
+gdb_test "info common" "Contents of F77 COMMON block 'fo_o':\r\nix = 11\r\niy2 = 22\r\niz = 33\r\n\r\nContents of F77 COMMON block 'foo':\r\nix_x = 1\r\niy_y = 2\r\niz_z2 = 3" "info common in"
|
|
||||||
+
|
|
||||||
+gdb_test "ptype ix" "type = $int4" "ptype ix in"
|
|
||||||
+gdb_test "ptype iy2" "type = $real4" "ptype iy2 in"
|
|
||||||
+gdb_test "ptype iz" "type = $real8" "ptype iz in"
|
|
||||||
+gdb_test "ptype ix_x" "type = $int4" "ptype ix_x in"
|
|
||||||
+gdb_test "ptype iy_y" "type = $real4" "ptype iy_y in"
|
|
||||||
+gdb_test "ptype iz_z2" "type = $real8" "ptype iz_z2 in"
|
|
||||||
+
|
|
||||||
+gdb_test "p ix" " = 11 *" "p ix in"
|
|
||||||
+gdb_test "p iy2" " = 22 *" "p iy2 in"
|
|
||||||
+gdb_test "p iz" " = 33 *" "p iz in"
|
|
||||||
+gdb_test "p ix_x" " = 1 *" "p ix_x in"
|
|
||||||
+gdb_test "p iy_y" " = 2 *" "p iy_y in"
|
|
||||||
+gdb_test "p iz_z2" " = 3 *" "p iz_z2 in"
|
|
||||||
Index: gdb-7.4.91.20120801/gdb/testsuite/gdb.fortran/common-block.f90
|
|
||||||
===================================================================
|
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
|
||||||
+++ gdb-7.4.91.20120801/gdb/testsuite/gdb.fortran/common-block.f90 2012-08-01 18:38:54.207540465 +0200
|
|
||||||
@@ -0,0 +1,67 @@
|
|
||||||
+! Copyright 2008 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.
|
|
||||||
+!
|
|
||||||
+! Ihis file is the Fortran source file for dynamic.exp.
|
|
||||||
+! Original file written by Jakub Jelinek <jakub@redhat.com>.
|
|
||||||
+! Modified for the GDB testcase by Jan Kratochvil <jan.kratochvil@redhat.com>.
|
|
||||||
+
|
|
||||||
+subroutine in
|
|
||||||
+
|
|
||||||
+ INTEGER*4 ix
|
|
||||||
+ REAL*4 iy2
|
|
||||||
+ REAL*8 iz
|
|
||||||
+
|
|
||||||
+ INTEGER*4 ix_x
|
|
||||||
+ REAL*4 iy_y
|
|
||||||
+ REAL*8 iz_z2
|
|
||||||
+
|
|
||||||
+ common /fo_o/ix,iy2,iz
|
|
||||||
+ common /foo/ix_x,iy_y,iz_z2
|
|
||||||
+
|
|
||||||
+ iy = 5
|
|
||||||
+ iz_z = 55
|
|
||||||
+
|
|
||||||
+ if (ix .ne. 11 .or. iy2 .ne. 22.0 .or. iz .ne. 33.0) call abort
|
|
||||||
+ if (ix_x .ne. 1 .or. iy_y .ne. 2.0 .or. iz_z2 .ne. 3.0) call abort
|
|
||||||
+
|
|
||||||
+ ix = 0 ! stop-here-in
|
|
||||||
+
|
|
||||||
+end subroutine in
|
|
||||||
+
|
|
||||||
+program common_test
|
|
||||||
+
|
|
||||||
+ INTEGER*4 ix
|
|
||||||
+ REAL*4 iy
|
|
||||||
+ REAL*8 iz
|
|
||||||
+
|
|
||||||
+ INTEGER*4 ix_x
|
|
||||||
+ REAL*4 iy_y
|
|
||||||
+ REAL*8 iz_z
|
|
||||||
+
|
|
||||||
+ common /foo/ix,iy,iz
|
|
||||||
+ common /fo_o/ix_x,iy_y,iz_z
|
|
||||||
+
|
|
||||||
+ ix = 1
|
|
||||||
+ iy = 2.0
|
|
||||||
+ iz = 3.0
|
|
||||||
+
|
|
||||||
+ ix_x = 11
|
|
||||||
+ iy_y = 22.0
|
|
||||||
+ iz_z = 33.0
|
|
||||||
+
|
|
||||||
+ call in ! stop-here-out
|
|
||||||
+
|
|
||||||
+end program common_test
|
|
@ -1,8 +1,8 @@
|
|||||||
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
|
Index: gdb-7.5.50.20130118/gdb/dwarf2read.c
|
||||||
index 53100c5..e7586ac 100644
|
===================================================================
|
||||||
--- a/gdb/dwarf2read.c
|
--- gdb-7.5.50.20130118.orig/gdb/dwarf2read.c 2013-01-19 21:16:22.437961789 +0100
|
||||||
+++ b/gdb/dwarf2read.c
|
+++ gdb-7.5.50.20130118/gdb/dwarf2read.c 2013-01-19 21:24:22.242969266 +0100
|
||||||
@@ -13306,6 +13306,25 @@ new_symbol_full (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
|
@@ -15987,6 +15987,25 @@ new_symbol_full (struct die_info *die, s
|
||||||
/* Cache this symbol's name and the name's demangled form (if any). */
|
/* Cache this symbol's name and the name's demangled form (if any). */
|
||||||
SYMBOL_SET_LANGUAGE (sym, cu->language);
|
SYMBOL_SET_LANGUAGE (sym, cu->language);
|
||||||
linkagename = dwarf2_physname (name, die, cu);
|
linkagename = dwarf2_physname (name, die, cu);
|
||||||
@ -28,12 +28,11 @@ index 53100c5..e7586ac 100644
|
|||||||
SYMBOL_SET_NAMES (sym, linkagename, strlen (linkagename), 0, objfile);
|
SYMBOL_SET_NAMES (sym, linkagename, strlen (linkagename), 0, objfile);
|
||||||
|
|
||||||
/* Fortran does not have mangling standard and the mangling does differ
|
/* Fortran does not have mangling standard and the mangling does differ
|
||||||
diff --git a/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp b/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp
|
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp
|
||||||
new file mode 100644
|
===================================================================
|
||||||
index 0000000..575071f
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
--- /dev/null
|
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp 2013-01-19 21:23:09.119827963 +0100
|
||||||
+++ b/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp
|
@@ -0,0 +1,108 @@
|
||||||
@@ -0,0 +1,101 @@
|
|
||||||
+# Copyright (C) 2012 Free Software Foundation, Inc.
|
+# Copyright (C) 2012 Free Software Foundation, Inc.
|
||||||
+
|
+
|
||||||
+# This program is free software; you can redistribute it and/or modify
|
+# This program is free software; you can redistribute it and/or modify
|
||||||
@ -90,7 +89,11 @@ index 0000000..575071f
|
|||||||
+ }
|
+ }
|
||||||
+ -re " = {<text gnu-indirect-function variable, no debug info>} (0x\[0-9a-f\]+) <__strstr>\r\n$gdb_prompt $" {
|
+ -re " = {<text gnu-indirect-function variable, no debug info>} (0x\[0-9a-f\]+) <__strstr>\r\n$gdb_prompt $" {
|
||||||
+ set addr $expect_out(1,string)
|
+ set addr $expect_out(1,string)
|
||||||
+ pass "$test (GDB workaround or future fixed glibc)"
|
+ pass "$test (GDB workaround)"
|
||||||
|
+ }
|
||||||
|
+ -re " = {<text gnu-indirect-function variable, no debug info>} (0x\[0-9a-f\]+) <__libc_strstr>\r\n$gdb_prompt $" {
|
||||||
|
+ set addr $expect_out(1,string)
|
||||||
|
+ pass "$test (fixed glibc)"
|
||||||
+ }
|
+ }
|
||||||
+ -re " = {char \\*\\(const char \\*, const char \\*\\)} 0x\[0-9a-f\]+ <strstr>\r\n$gdb_prompt $" {
|
+ -re " = {char \\*\\(const char \\*, const char \\*\\)} 0x\[0-9a-f\]+ <strstr>\r\n$gdb_prompt $" {
|
||||||
+ untested "$test (gnu-ifunc not in use by glibc)"
|
+ untested "$test (gnu-ifunc not in use by glibc)"
|
||||||
@ -126,7 +129,10 @@ index 0000000..575071f
|
|||||||
+ pass $test
|
+ pass $test
|
||||||
+ }
|
+ }
|
||||||
+ -re " = {<text gnu-indirect-function variable, no debug info>} $addr <__strstr>\r\n$gdb_prompt $" {
|
+ -re " = {<text gnu-indirect-function variable, no debug info>} $addr <__strstr>\r\n$gdb_prompt $" {
|
||||||
+ pass "$test (GDB workaround or future fixed glibc)"
|
+ pass "$test (GDB workaround)"
|
||||||
|
+ }
|
||||||
|
+ -re " = {<text gnu-indirect-function variable, no debug info>} $addr <__libc_strstr>\r\n$gdb_prompt $" {
|
||||||
|
+ pass "$test (fixed glibc)"
|
||||||
+ }
|
+ }
|
||||||
+ -re " = {void \\*\\(void\\)} 0x\[0-9a-f\]+ <strstr>\r\n$gdb_prompt $" {
|
+ -re " = {void \\*\\(void\\)} 0x\[0-9a-f\]+ <strstr>\r\n$gdb_prompt $" {
|
||||||
+ fail $test
|
+ fail $test
|
||||||
|
@ -1,350 +0,0 @@
|
|||||||
http://sourceware.org/ml/gdb-patches/2012-12/msg00030.html
|
|
||||||
Subject: Re: RFC: fix bug in DW_OP_GNU_implicit_pointer
|
|
||||||
|
|
||||||
>>>>> "Jan" == Jan Kratochvil <jan.kratochvil@redhat.com> writes:
|
|
||||||
|
|
||||||
Jan> And how it is implemented in GCC?
|
|
||||||
|
|
||||||
Correctly.
|
|
||||||
|
|
||||||
>> I updated the implptr-64bit test case to test the new code as well.
|
|
||||||
|
|
||||||
Jan> This is .S test so GCC is not tested there.
|
|
||||||
|
|
||||||
Yeah, I considered this, but I did not want to add a new test that would
|
|
||||||
be exposed to gcc version differences -- and testing gcc's output is
|
|
||||||
more properly done in the gcc test suite anyway.
|
|
||||||
|
|
||||||
Jan> Maybe to call them now for example:
|
|
||||||
Jan> dwarf2_fetch_die_loc_cu_off
|
|
||||||
Jan> dwarf2_fetch_die_loc_sect_off
|
|
||||||
|
|
||||||
Ok.
|
|
||||||
|
|
||||||
Jan> Missing added TWO_CU here.
|
|
||||||
|
|
||||||
Added.
|
|
||||||
|
|
||||||
Tom
|
|
||||||
|
|
||||||
2012-11-30 Tom Tromey <tromey@redhat.com>
|
|
||||||
|
|
||||||
* dwarf2read.c (dwarf2_fetch_die_loc_sect_off): New function.
|
|
||||||
(dwarf2_fetch_die_loc_cu_off): Rename from
|
|
||||||
dwarf2_fetch_die_location_block. Rewrite to use
|
|
||||||
dwarf2_fetch_die_loc_sect_off.
|
|
||||||
* dwarf2loc.h (dwarf2_fetch_die_loc_sect_off): Declare.
|
|
||||||
(dwarf2_fetch_die_loc_cu_off): Rename.
|
|
||||||
* dwarf2loc.c (indirect_pieced_value): Use
|
|
||||||
dwarf2_fetch_die_loc_sect_off.
|
|
||||||
* dwarf2expr.h (struct dwarf_expr_context) <len, data>: Update
|
|
||||||
comment.
|
|
||||||
(struct dwarf_expr_piece) <v.ptr.die>: Now a sect_offset.
|
|
||||||
* dwarf2expr.c (add_piece): Update.
|
|
||||||
(execute_stack_op) <DW_OP_GNU_implicit_pointer>: Update comment.
|
|
||||||
|
|
||||||
2012-11-30 Tom Tromey <tromey@redhat.com>
|
|
||||||
|
|
||||||
* gdb.dwarf2/implptr-64bit.exp: Run tests with two CUs as well.
|
|
||||||
(test): Add "two_cu" argument.
|
|
||||||
* gdb.dwarf2/implptr-64bit.S: Move subprogram later; use ref_addr
|
|
||||||
for types; allow two CUs.
|
|
||||||
|
|
||||||
diff --git a/gdb/dwarf2expr.c b/gdb/dwarf2expr.c
|
|
||||||
index 214b371..877add4 100644
|
|
||||||
--- a/gdb/dwarf2expr.c
|
|
||||||
+++ b/gdb/dwarf2expr.c
|
|
||||||
@@ -342,7 +342,7 @@ add_piece (struct dwarf_expr_context *ctx, ULONGEST size, ULONGEST offset)
|
|
||||||
}
|
|
||||||
else if (p->location == DWARF_VALUE_IMPLICIT_POINTER)
|
|
||||||
{
|
|
||||||
- p->v.ptr.die.cu_off = ctx->len;
|
|
||||||
+ p->v.ptr.die.sect_off = ctx->len;
|
|
||||||
p->v.ptr.offset = value_as_long (dwarf_expr_fetch (ctx, 0));
|
|
||||||
}
|
|
||||||
else if (p->location == DWARF_VALUE_REGISTER)
|
|
||||||
@@ -872,7 +872,7 @@ execute_stack_op (struct dwarf_expr_context *ctx,
|
|
||||||
error (_("DWARF-2 expression error: DW_OP_GNU_implicit_pointer "
|
|
||||||
"is not allowed in frame context"));
|
|
||||||
|
|
||||||
- /* The referred-to DIE of cu_offset kind. */
|
|
||||||
+ /* The referred-to DIE of sect_offset kind. */
|
|
||||||
ctx->len = extract_unsigned_integer (op_ptr, ctx->ref_addr_size,
|
|
||||||
byte_order);
|
|
||||||
op_ptr += ctx->ref_addr_size;
|
|
||||||
diff --git a/gdb/dwarf2expr.h b/gdb/dwarf2expr.h
|
|
||||||
index 19efbfd..1b890dc 100644
|
|
||||||
--- a/gdb/dwarf2expr.h
|
|
||||||
+++ b/gdb/dwarf2expr.h
|
|
||||||
@@ -165,7 +165,7 @@ struct dwarf_expr_context
|
|
||||||
|
|
||||||
/* For DWARF_VALUE_LITERAL, the current literal value's length and
|
|
||||||
data. For DWARF_VALUE_IMPLICIT_POINTER, LEN is the offset of the
|
|
||||||
- target DIE of cu_offset kind. */
|
|
||||||
+ target DIE of sect_offset kind. */
|
|
||||||
ULONGEST len;
|
|
||||||
const gdb_byte *data;
|
|
||||||
|
|
||||||
@@ -236,7 +236,7 @@ struct dwarf_expr_piece
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
/* The referent DIE from DW_OP_GNU_implicit_pointer. */
|
|
||||||
- cu_offset die;
|
|
||||||
+ sect_offset die;
|
|
||||||
/* The byte offset into the resulting data. */
|
|
||||||
LONGEST offset;
|
|
||||||
} ptr;
|
|
||||||
diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c
|
|
||||||
index cadcc17..94a03ca 100644
|
|
||||||
--- a/gdb/dwarf2loc.c
|
|
||||||
+++ b/gdb/dwarf2loc.c
|
|
||||||
@@ -425,8 +425,7 @@ per_cu_dwarf_call (struct dwarf_expr_context *ctx, cu_offset die_offset,
|
|
||||||
{
|
|
||||||
struct dwarf2_locexpr_baton block;
|
|
||||||
|
|
||||||
- block = dwarf2_fetch_die_location_block (die_offset, per_cu,
|
|
||||||
- get_frame_pc, baton);
|
|
||||||
+ block = dwarf2_fetch_die_loc_cu_off (die_offset, per_cu, get_frame_pc, baton);
|
|
||||||
|
|
||||||
/* DW_OP_call_ref is currently not supported. */
|
|
||||||
gdb_assert (block.per_cu == per_cu);
|
|
||||||
@@ -2034,9 +2033,10 @@ indirect_pieced_value (struct value *value)
|
|
||||||
byte_offset = value_as_address (value);
|
|
||||||
|
|
||||||
gdb_assert (piece);
|
|
||||||
- baton = dwarf2_fetch_die_location_block (piece->v.ptr.die, c->per_cu,
|
|
||||||
- get_frame_address_in_block_wrapper,
|
|
||||||
- frame);
|
|
||||||
+ baton
|
|
||||||
+ = dwarf2_fetch_die_loc_sect_off (piece->v.ptr.die, c->per_cu,
|
|
||||||
+ get_frame_address_in_block_wrapper,
|
|
||||||
+ frame);
|
|
||||||
|
|
||||||
return dwarf2_evaluate_loc_desc_full (TYPE_TARGET_TYPE (type), frame,
|
|
||||||
baton.data, baton.size, baton.per_cu,
|
|
||||||
@@ -3201,8 +3201,8 @@ dwarf2_compile_expr_to_ax (struct agent_expr *expr, struct axs_value *loc,
|
|
||||||
op_ptr += size;
|
|
||||||
|
|
||||||
offset.cu_off = uoffset;
|
|
||||||
- block = dwarf2_fetch_die_location_block (offset, per_cu,
|
|
||||||
- get_ax_pc, expr);
|
|
||||||
+ block = dwarf2_fetch_die_loc_cu_off (offset, per_cu,
|
|
||||||
+ get_ax_pc, expr);
|
|
||||||
|
|
||||||
/* DW_OP_call_ref is currently not supported. */
|
|
||||||
gdb_assert (block.per_cu == per_cu);
|
|
||||||
diff --git a/gdb/dwarf2loc.h b/gdb/dwarf2loc.h
|
|
||||||
index 0f10767..6a8b3c8 100644
|
|
||||||
--- a/gdb/dwarf2loc.h
|
|
||||||
+++ b/gdb/dwarf2loc.h
|
|
||||||
@@ -62,7 +62,12 @@ const gdb_byte *dwarf2_find_location_expression
|
|
||||||
size_t *locexpr_length,
|
|
||||||
CORE_ADDR pc);
|
|
||||||
|
|
||||||
-struct dwarf2_locexpr_baton dwarf2_fetch_die_location_block
|
|
||||||
+struct dwarf2_locexpr_baton dwarf2_fetch_die_loc_sect_off
|
|
||||||
+ (sect_offset offset_in_cu, struct dwarf2_per_cu_data *per_cu,
|
|
||||||
+ CORE_ADDR (*get_frame_pc) (void *baton),
|
|
||||||
+ void *baton);
|
|
||||||
+
|
|
||||||
+struct dwarf2_locexpr_baton dwarf2_fetch_die_loc_cu_off
|
|
||||||
(cu_offset offset_in_cu, struct dwarf2_per_cu_data *per_cu,
|
|
||||||
CORE_ADDR (*get_frame_pc) (void *baton),
|
|
||||||
void *baton);
|
|
||||||
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
|
|
||||||
index f4bd7a9..59dea05 100644
|
|
||||||
--- a/gdb/dwarf2read.c
|
|
||||||
+++ b/gdb/dwarf2read.c
|
|
||||||
@@ -17343,12 +17343,11 @@ follow_die_ref (struct die_info *src_die, struct attribute *attr,
|
|
||||||
dwarf2_locexpr_baton->data has lifetime of PER_CU->OBJFILE. */
|
|
||||||
|
|
||||||
struct dwarf2_locexpr_baton
|
|
||||||
-dwarf2_fetch_die_location_block (cu_offset offset_in_cu,
|
|
||||||
- struct dwarf2_per_cu_data *per_cu,
|
|
||||||
- CORE_ADDR (*get_frame_pc) (void *baton),
|
|
||||||
- void *baton)
|
|
||||||
+dwarf2_fetch_die_loc_sect_off (sect_offset offset,
|
|
||||||
+ struct dwarf2_per_cu_data *per_cu,
|
|
||||||
+ CORE_ADDR (*get_frame_pc) (void *baton),
|
|
||||||
+ void *baton)
|
|
||||||
{
|
|
||||||
- sect_offset offset = { per_cu->offset.sect_off + offset_in_cu.cu_off };
|
|
||||||
struct dwarf2_cu *cu;
|
|
||||||
struct die_info *die;
|
|
||||||
struct attribute *attr;
|
|
||||||
@@ -17403,6 +17402,20 @@ dwarf2_fetch_die_location_block (cu_offset offset_in_cu,
|
|
||||||
return retval;
|
|
||||||
}
|
|
||||||
|
|
||||||
+/* Like dwarf2_fetch_die_loc_sect_off, but take a CU
|
|
||||||
+ offset. */
|
|
||||||
+
|
|
||||||
+struct dwarf2_locexpr_baton
|
|
||||||
+dwarf2_fetch_die_loc_cu_off (cu_offset offset_in_cu,
|
|
||||||
+ struct dwarf2_per_cu_data *per_cu,
|
|
||||||
+ CORE_ADDR (*get_frame_pc) (void *baton),
|
|
||||||
+ void *baton)
|
|
||||||
+{
|
|
||||||
+ sect_offset offset = { per_cu->offset.sect_off + offset_in_cu.cu_off };
|
|
||||||
+
|
|
||||||
+ return dwarf2_fetch_die_loc_sect_off (offset, per_cu, get_frame_pc, baton);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
/* Return the type of the DIE at DIE_OFFSET in the CU named by
|
|
||||||
PER_CU. */
|
|
||||||
|
|
||||||
diff --git a/gdb/testsuite/gdb.dwarf2/implptr-64bit.S b/gdb/testsuite/gdb.dwarf2/implptr-64bit.S
|
|
||||||
index be8db5c..d0d870a 100644
|
|
||||||
--- a/gdb/testsuite/gdb.dwarf2/implptr-64bit.S
|
|
||||||
+++ b/gdb/testsuite/gdb.dwarf2/implptr-64bit.S
|
|
||||||
@@ -18,11 +18,12 @@ d:
|
|
||||||
/* Length of Compilation Unit Info */
|
|
||||||
#if OFFSET_SIZE == 4
|
|
||||||
# define OFFSET .4byte
|
|
||||||
- .4byte debug_end - 1f
|
|
||||||
+# define HEADER_LINE1
|
|
||||||
+# define HEADER_LINE2(END) .4byte END - 1f
|
|
||||||
#elif OFFSET_SIZE == 8
|
|
||||||
# define OFFSET .8byte
|
|
||||||
- .4byte 0xffffffff
|
|
||||||
- .8byte debug_end - 1f
|
|
||||||
+# define HEADER_LINE1 .4byte 0xffffffff
|
|
||||||
+# define HEADER_LINE2(END) .8byte END - 1f
|
|
||||||
#else
|
|
||||||
# error
|
|
||||||
#endif
|
|
||||||
@@ -40,6 +41,16 @@ d:
|
|
||||||
#else
|
|
||||||
# error
|
|
||||||
#endif
|
|
||||||
+
|
|
||||||
+#if TWO_CU
|
|
||||||
+# define END1 .Lcu_end_1
|
|
||||||
+#else
|
|
||||||
+# define END1 debug_end
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+ HEADER_LINE1
|
|
||||||
+ HEADER_LINE2(END1)
|
|
||||||
+
|
|
||||||
1:
|
|
||||||
.2byte DWARF_VERSION /* DWARF version number */
|
|
||||||
OFFSET .Ldebug_abbrev0 /* Offset Into Abbrev. Section */
|
|
||||||
@@ -68,13 +79,6 @@ d:
|
|
||||||
|
|
||||||
.byte 0x0 /* end of children of DW_TAG_structure_type */
|
|
||||||
|
|
||||||
- .uleb128 6 /* Abbrev: DW_TAG_subprogram */
|
|
||||||
- .ascii "main\0" /* DW_AT_name */
|
|
||||||
- ADDR main /* DW_AT_low_pc */
|
|
||||||
- ADDR main + 0x100 /* DW_AT_high_pc */
|
|
||||||
- .4byte .Ltype_int - d /* DW_AT_type */
|
|
||||||
- .byte 1 /* DW_AT_external */
|
|
||||||
-
|
|
||||||
.Ltype_structptr:
|
|
||||||
.uleb128 0x5 /* DW_TAG_pointer_type */
|
|
||||||
.byte ADDR_SIZE /* DW_AT_byte_size */
|
|
||||||
@@ -90,7 +94,32 @@ d:
|
|
||||||
3:
|
|
||||||
.byte 1, 1, 1, 1
|
|
||||||
2:
|
|
||||||
- .4byte .Ltype_struct - d /* DW_AT_type */
|
|
||||||
+ REF_ADDR .Ltype_struct - d /* DW_AT_type */
|
|
||||||
+
|
|
||||||
+#if TWO_CU
|
|
||||||
+ .byte 0x0 /* end of children of CU */
|
|
||||||
+.Lcu_end_1:
|
|
||||||
+
|
|
||||||
+ HEADER_LINE1
|
|
||||||
+ HEADER_LINE2 (debug_end)
|
|
||||||
+
|
|
||||||
+1:
|
|
||||||
+ .2byte DWARF_VERSION /* DWARF version number */
|
|
||||||
+ OFFSET .Ldebug_abbrev0 /* Offset Into Abbrev. Section */
|
|
||||||
+ .byte ADDR_SIZE /* Pointer Size (in bytes) */
|
|
||||||
+
|
|
||||||
+ .uleb128 0x1 /* (DIE (0xb) DW_TAG_compile_unit) */
|
|
||||||
+ .ascii "GNU C 4.4.3\0" /* DW_AT_producer */
|
|
||||||
+ .byte 0x1 /* DW_AT_language */
|
|
||||||
+ .ascii "1.c\0" /* DW_AT_name */
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+ .uleb128 6 /* Abbrev: DW_TAG_subprogram */
|
|
||||||
+ .ascii "main\0" /* DW_AT_name */
|
|
||||||
+ ADDR main /* DW_AT_low_pc */
|
|
||||||
+ ADDR main + 0x100 /* DW_AT_high_pc */
|
|
||||||
+ REF_ADDR .Ltype_int - d /* DW_AT_type */
|
|
||||||
+ .byte 1 /* DW_AT_external */
|
|
||||||
|
|
||||||
.uleb128 0x4 /* (DW_TAG_variable) */
|
|
||||||
.ascii "p\0" /* DW_AT_name */
|
|
||||||
@@ -100,7 +129,7 @@ d:
|
|
||||||
REF_ADDR .Lvar_out - d /* referenced DIE */
|
|
||||||
.sleb128 0 /* offset */
|
|
||||||
2:
|
|
||||||
- .4byte .Ltype_structptr - d /* DW_AT_type */
|
|
||||||
+ REF_ADDR .Ltype_structptr - d /* DW_AT_type */
|
|
||||||
|
|
||||||
.byte 0x0 /* end of children of main */
|
|
||||||
|
|
||||||
@@ -152,7 +181,7 @@ debug_end:
|
|
||||||
.uleb128 0x02 /* (DW_AT_location) */
|
|
||||||
.uleb128 0xa /* (DW_FORM_block1) */
|
|
||||||
.uleb128 0x49 /* (DW_AT_type) */
|
|
||||||
- .uleb128 0x13 /* (DW_FORM_ref4) */
|
|
||||||
+ .uleb128 0x10 /* (DW_FORM_ref_addr) */
|
|
||||||
.byte 0x0
|
|
||||||
.byte 0x0
|
|
||||||
|
|
||||||
@@ -176,7 +205,7 @@ debug_end:
|
|
||||||
.uleb128 0x12 /* DW_AT_high_pc */
|
|
||||||
.uleb128 0x1 /* DW_FORM_addr */
|
|
||||||
.uleb128 0x49 /* DW_AT_type */
|
|
||||||
- .uleb128 0x13 /* DW_FORM_ref4 */
|
|
||||||
+ .uleb128 0x10 /* DW_FORM_ref_addr */
|
|
||||||
.uleb128 0x3f /* DW_AT_external */
|
|
||||||
.uleb128 0xc /* DW_FORM_flag */
|
|
||||||
.byte 0x0 /* Terminator */
|
|
||||||
diff --git a/gdb/testsuite/gdb.dwarf2/implptr-64bit.exp b/gdb/testsuite/gdb.dwarf2/implptr-64bit.exp
|
|
||||||
index 78f1594..066cf78 100644
|
|
||||||
--- a/gdb/testsuite/gdb.dwarf2/implptr-64bit.exp
|
|
||||||
+++ b/gdb/testsuite/gdb.dwarf2/implptr-64bit.exp
|
|
||||||
@@ -22,16 +22,16 @@ if {![dwarf2_support]} {
|
|
||||||
standard_testfile .S
|
|
||||||
set mainfile main.c
|
|
||||||
|
|
||||||
-proc test { dwarf_version offset_size addr_size ref_addr_size } {
|
|
||||||
+proc test { dwarf_version offset_size addr_size ref_addr_size two_cu } {
|
|
||||||
global testfile srcfile mainfile
|
|
||||||
|
|
||||||
# 32-bit targets do not support any of the testcases; keep quiet there.
|
|
||||||
set opts {quiet}
|
|
||||||
- foreach n { dwarf_version offset_size addr_size ref_addr_size } {
|
|
||||||
+ foreach n { dwarf_version offset_size addr_size ref_addr_size two_cu } {
|
|
||||||
lappend opts "additional_flags=-D[string toupper $n]=[expr "\$$n"]"
|
|
||||||
}
|
|
||||||
|
|
||||||
- set name "d${dwarf_version}o${offset_size}a${addr_size}r${ref_addr_size}"
|
|
||||||
+ set name "d${dwarf_version}o${offset_size}a${addr_size}r${ref_addr_size}t${two_cu}"
|
|
||||||
set executable ${testfile}-${name}
|
|
||||||
if [prepare_for_testing ${testfile}.exp $executable "${srcfile} ${mainfile}" $opts] {
|
|
||||||
return -1
|
|
||||||
@@ -44,8 +44,12 @@ proc test { dwarf_version offset_size addr_size ref_addr_size } {
|
|
||||||
gdb_test "p/x p->f" " = 0x1010101" $name
|
|
||||||
}
|
|
||||||
|
|
||||||
-# DWARF_VERSION OFFSET_SIZE ADDR_SIZE REF_ADDR_SIZE
|
|
||||||
-test 2 8 4 4
|
|
||||||
-test 2 4 8 8
|
|
||||||
-test 3 8 4 8
|
|
||||||
-test 3 4 8 4
|
|
||||||
+# DWARF_VERSION OFFSET_SIZE ADDR_SIZE REF_ADDR_SIZE TWO_CU
|
|
||||||
+test 2 8 4 4 0
|
|
||||||
+test 2 4 8 8 0
|
|
||||||
+test 3 8 4 8 0
|
|
||||||
+test 3 4 8 4 0
|
|
||||||
+test 2 8 4 4 1
|
|
||||||
+test 2 4 8 8 1
|
|
||||||
+test 3 8 4 8 1
|
|
||||||
+test 3 4 8 4 1
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
@ -1,110 +0,0 @@
|
|||||||
http://sourceware.org/ml/gdb-cvs/2012-09/msg00169.html
|
|
||||||
|
|
||||||
### src/gdb/ChangeLog 2012/09/27 12:53:57 1.14718
|
|
||||||
### src/gdb/ChangeLog 2012/09/27 16:04:18 1.14719
|
|
||||||
## -1,3 +1,8 @@
|
|
||||||
+2012-09-27 Tom Tromey <tromey@redhat.com>
|
|
||||||
+
|
|
||||||
+ Fix https://bugzilla.redhat.com/show_bug.cgi?id=849357
|
|
||||||
+ * cp-valprint.c (cp_print_value_fields): Use get_vptr_fieldno.
|
|
||||||
+
|
|
||||||
2012-09-27 Joel Brobecker <brobecker@adacore.com>
|
|
||||||
|
|
||||||
* sol-thread.c (sol_thread_fetch_registers)
|
|
||||||
--- src/gdb/cp-valprint.c 2012/07/06 05:36:07 1.85
|
|
||||||
+++ src/gdb/cp-valprint.c 2012/09/27 16:04:22 1.86
|
|
||||||
@@ -210,7 +210,9 @@
|
|
||||||
{
|
|
||||||
int statmem_obstack_initial_size = 0;
|
|
||||||
int stat_array_obstack_initial_size = 0;
|
|
||||||
-
|
|
||||||
+ struct type *vptr_basetype = NULL;
|
|
||||||
+ int vptr_fieldno;
|
|
||||||
+
|
|
||||||
if (dont_print_statmem == 0)
|
|
||||||
{
|
|
||||||
statmem_obstack_initial_size =
|
|
||||||
@@ -225,6 +227,7 @@
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+ vptr_fieldno = get_vptr_fieldno (type, &vptr_basetype);
|
|
||||||
for (i = n_baseclasses; i < len; i++)
|
|
||||||
{
|
|
||||||
/* If requested, skip printing of static fields. */
|
|
||||||
@@ -358,7 +361,7 @@
|
|
||||||
v, stream, recurse + 1,
|
|
||||||
options);
|
|
||||||
}
|
|
||||||
- else if (i == TYPE_VPTR_FIELDNO (type))
|
|
||||||
+ else if (i == vptr_fieldno && type == vptr_basetype)
|
|
||||||
{
|
|
||||||
int i_offset = offset + TYPE_FIELD_BITPOS (type, i) / 8;
|
|
||||||
struct type *i_type = TYPE_FIELD_TYPE (type, i);
|
|
||||||
### src/gdb/testsuite/ChangeLog 2012/09/26 19:50:12 1.3396
|
|
||||||
### src/gdb/testsuite/ChangeLog 2012/09/27 16:04:22 1.3397
|
|
||||||
## -1,3 +1,10 @@
|
|
||||||
+2012-09-27 Tom Tromey <tromey@redhat.com>
|
|
||||||
+
|
|
||||||
+ * gdb.cp/derivation.exp: Add regression test.
|
|
||||||
+ * gdb.cp/derivation.cc (class V_base, class V_inter, class
|
|
||||||
+ V_derived): New.
|
|
||||||
+ (vderived): New global.
|
|
||||||
+
|
|
||||||
2012-09-26 Tom Tromey <tromey@redhat.com>
|
|
||||||
|
|
||||||
* gdb.dwarf2/dw2-common-block.S: New file.
|
|
||||||
--- src/gdb/testsuite/gdb.cp/derivation.cc 2011/12/13 17:22:08 1.2
|
|
||||||
+++ src/gdb/testsuite/gdb.cp/derivation.cc 2012/09/27 16:04:23 1.3
|
|
||||||
@@ -118,8 +118,37 @@
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
+class V_base
|
|
||||||
+{
|
|
||||||
+public:
|
|
||||||
+ virtual void m();
|
|
||||||
+ int base;
|
|
||||||
+};
|
|
||||||
|
|
||||||
+void
|
|
||||||
+V_base::m()
|
|
||||||
+{
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+class V_inter : public virtual V_base
|
|
||||||
+{
|
|
||||||
+public:
|
|
||||||
+ virtual void f();
|
|
||||||
+ int inter;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+void
|
|
||||||
+V_inter::f()
|
|
||||||
+{
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+class V_derived : public V_inter
|
|
||||||
+{
|
|
||||||
+public:
|
|
||||||
+ double x;
|
|
||||||
+};
|
|
||||||
|
|
||||||
+V_derived vderived;
|
|
||||||
|
|
||||||
int A::afoo() {
|
|
||||||
return 1;
|
|
||||||
--- src/gdb/testsuite/gdb.cp/derivation.exp 2012/07/10 15:18:18 1.19
|
|
||||||
+++ src/gdb/testsuite/gdb.cp/derivation.exp 2012/09/27 16:04:23 1.20
|
|
||||||
@@ -176,3 +176,11 @@
|
|
||||||
|
|
||||||
gdb_test "print g_instance.bfoo()" "\\$\[0-9\]+ = 2" "print value of g_instance.bfoo()"
|
|
||||||
gdb_test "print g_instance.cfoo()" "\\$\[0-9\]+ = 3" "print value of g_instance.cfoo()"
|
|
||||||
+
|
|
||||||
+# This is a regression test for a bug that caused a crash when trying
|
|
||||||
+# to print the vtbl pointer. We don't care about the output so much
|
|
||||||
+# here (it is tested elsewhere), just that gdb doesn't crash. We test
|
|
||||||
+# "ptype" first because, before the gdb fix, that was the only code
|
|
||||||
+# path calling get_vptr_fieldno.
|
|
||||||
+gdb_test "ptype vderived" "type = .*"
|
|
||||||
+gdb_test "print vderived" " = {.* inter = 0.*x = 0}"
|
|
@ -1,23 +0,0 @@
|
|||||||
http://sourceware.org/ml/gdb-cvs/2012-07/msg00173.html
|
|
||||||
|
|
||||||
### src/gdb/ChangeLog 2012/07/20 17:54:05 1.14507
|
|
||||||
### src/gdb/ChangeLog 2012/07/22 16:52:39 1.14508
|
|
||||||
## -1,3 +1,7 @@
|
|
||||||
+2012-07-22 Siddhesh Poyarekar <siddhesh@redhat.com>
|
|
||||||
+
|
|
||||||
+ * sh-tdep.c (sh_treat_as_flt_p): Remove unused variable LEN.
|
|
||||||
+
|
|
||||||
2012-07-20 Jeff Kenton <jkenton@tilera.com>
|
|
||||||
|
|
||||||
* tilegx-linux-tdep.c (tilegx_linux_sigframe_init): Fix
|
|
||||||
--- src/gdb/sh-tdep.c 2012/06/08 14:24:57 1.245
|
|
||||||
+++ src/gdb/sh-tdep.c 2012/07/22 16:52:41 1.246
|
|
||||||
@@ -1032,8 +1032,6 @@
|
|
||||||
static int
|
|
||||||
sh_treat_as_flt_p (struct type *type)
|
|
||||||
{
|
|
||||||
- int len = TYPE_LENGTH (type);
|
|
||||||
-
|
|
||||||
/* Ordinary float types are obviously treated as float. */
|
|
||||||
if (TYPE_CODE (type) == TYPE_CODE_FLT)
|
|
||||||
return 1;
|
|
@ -1,64 +0,0 @@
|
|||||||
http://sourceware.org/ml/gdb-cvs/2012-07/msg00182.html
|
|
||||||
|
|
||||||
### src/gdb/ChangeLog 2012/07/23 15:25:11 1.14514
|
|
||||||
### src/gdb/ChangeLog 2012/07/23 18:08:27 1.14515
|
|
||||||
## -1,3 +1,9 @@
|
|
||||||
+2012-07-23 Siddhesh Poyarekar <siddhesh@redhat.com>
|
|
||||||
+
|
|
||||||
+ * p-valprint.c (pascal_object_print_value): Replace potentially
|
|
||||||
+ unsafe alloca with xmalloc/xfree.
|
|
||||||
+ * valops.c (search_struct_method): Likewise.
|
|
||||||
+
|
|
||||||
2012-07-23 Tom Tromey <tromey@redhat.com>
|
|
||||||
|
|
||||||
* solib-svr4.c (enable_break): Update.
|
|
||||||
--- src/gdb/p-valprint.c 2012/05/18 21:02:49 1.100
|
|
||||||
+++ src/gdb/p-valprint.c 2012/07/23 18:08:29 1.101
|
|
||||||
@@ -797,8 +797,11 @@
|
|
||||||
|
|
||||||
if (boffset < 0 || boffset >= TYPE_LENGTH (type))
|
|
||||||
{
|
|
||||||
- /* FIXME (alloc): not safe is baseclass is really really big. */
|
|
||||||
- gdb_byte *buf = alloca (TYPE_LENGTH (baseclass));
|
|
||||||
+ gdb_byte *buf;
|
|
||||||
+ struct cleanup *back_to;
|
|
||||||
+
|
|
||||||
+ buf = xmalloc (TYPE_LENGTH (baseclass));
|
|
||||||
+ back_to = make_cleanup (xfree, buf);
|
|
||||||
|
|
||||||
base_valaddr = buf;
|
|
||||||
if (target_read_memory (address + boffset, buf,
|
|
||||||
@@ -807,6 +810,7 @@
|
|
||||||
address = address + boffset;
|
|
||||||
thisoffset = 0;
|
|
||||||
boffset = 0;
|
|
||||||
+ do_cleanups (back_to);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
base_valaddr = valaddr;
|
|
||||||
--- src/gdb/valops.c 2012/06/24 07:28:10 1.297
|
|
||||||
+++ src/gdb/valops.c 2012/07/23 18:08:29 1.298
|
|
||||||
@@ -2281,8 +2281,13 @@
|
|
||||||
|
|
||||||
if (offset < 0 || offset >= TYPE_LENGTH (type))
|
|
||||||
{
|
|
||||||
- gdb_byte *tmp = alloca (TYPE_LENGTH (baseclass));
|
|
||||||
- CORE_ADDR address = value_address (*arg1p);
|
|
||||||
+ gdb_byte *tmp;
|
|
||||||
+ struct cleanup *back_to;
|
|
||||||
+ CORE_ADDR address;
|
|
||||||
+
|
|
||||||
+ tmp = xmalloc (TYPE_LENGTH (baseclass));
|
|
||||||
+ back_to = make_cleanup (xfree, tmp);
|
|
||||||
+ address = value_address (*arg1p);
|
|
||||||
|
|
||||||
if (target_read_memory (address + offset,
|
|
||||||
tmp, TYPE_LENGTH (baseclass)) != 0)
|
|
||||||
@@ -2293,6 +2298,7 @@
|
|
||||||
address + offset);
|
|
||||||
base_valaddr = value_contents_for_printing (base_val);
|
|
||||||
this_offset = 0;
|
|
||||||
+ do_cleanups (back_to);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
@ -1,139 +0,0 @@
|
|||||||
http://sourceware.org/ml/gdb-cvs/2012-07/msg00213.html
|
|
||||||
|
|
||||||
### src/gdb/ChangeLog 2012/07/25 20:14:17 1.14531
|
|
||||||
### src/gdb/ChangeLog 2012/07/26 02:03:14 1.14532
|
|
||||||
## -1,3 +1,17 @@
|
|
||||||
+2012-07-26 Siddhesh Poyarekar <siddhesh@redhat.com>
|
|
||||||
+
|
|
||||||
+ * dwarf2loc.c (dwarf2_evaluate_loc_desc_full): Expand parameter
|
|
||||||
+ SIZE to size_t.
|
|
||||||
+ (dwarf2_evaluate_loc_desc): Likewise.
|
|
||||||
+ (dwarf2_loc_desc_needs_frame): Likewise.
|
|
||||||
+ (locexpr_describe_location_1): Likewise.
|
|
||||||
+ * dwarf2loc.h (struct dwarf2_locexpr_baton): Make SIZE as
|
|
||||||
+ size_t.
|
|
||||||
+ (struct dwarf2_loclist_baton): Likewise.
|
|
||||||
+ * dwarf2read.c (struct dwarf_block): Likewise.
|
|
||||||
+ (dump_die_shallow): Use pulongest to print dwarf_block.size.
|
|
||||||
+ (decode_locdesc): Expand SIZE and I to size_t.
|
|
||||||
+
|
|
||||||
2012-07-25 Jan Kratochvil <jan.kratochvil@redhat.com>
|
|
||||||
|
|
||||||
* contrib/cc-with-tweaks.sh: Put into comment path gdb/contrib/.
|
|
||||||
--- src/gdb/dwarf2loc.c 2012/07/13 20:15:50 1.152
|
|
||||||
+++ src/gdb/dwarf2loc.c 2012/07/26 02:03:16 1.153
|
|
||||||
@@ -54,8 +54,8 @@
|
|
||||||
static struct value *dwarf2_evaluate_loc_desc_full (struct type *type,
|
|
||||||
struct frame_info *frame,
|
|
||||||
const gdb_byte *data,
|
|
||||||
- unsigned short size,
|
|
||||||
- struct dwarf2_per_cu_data *per_cu,
|
|
||||||
+ size_t size,
|
|
||||||
+ struct dwarf2_per_cu_data *per_cu,
|
|
||||||
LONGEST byte_offset);
|
|
||||||
|
|
||||||
/* Until these have formal names, we define these here.
|
|
||||||
@@ -2111,7 +2111,7 @@
|
|
||||||
|
|
||||||
static struct value *
|
|
||||||
dwarf2_evaluate_loc_desc_full (struct type *type, struct frame_info *frame,
|
|
||||||
- const gdb_byte *data, unsigned short size,
|
|
||||||
+ const gdb_byte *data, size_t size,
|
|
||||||
struct dwarf2_per_cu_data *per_cu,
|
|
||||||
LONGEST byte_offset)
|
|
||||||
{
|
|
||||||
@@ -2312,7 +2312,7 @@
|
|
||||||
|
|
||||||
struct value *
|
|
||||||
dwarf2_evaluate_loc_desc (struct type *type, struct frame_info *frame,
|
|
||||||
- const gdb_byte *data, unsigned short size,
|
|
||||||
+ const gdb_byte *data, size_t size,
|
|
||||||
struct dwarf2_per_cu_data *per_cu)
|
|
||||||
{
|
|
||||||
return dwarf2_evaluate_loc_desc_full (type, frame, data, size, per_cu, 0);
|
|
||||||
@@ -2433,7 +2433,7 @@
|
|
||||||
requires a frame to evaluate. */
|
|
||||||
|
|
||||||
static int
|
|
||||||
-dwarf2_loc_desc_needs_frame (const gdb_byte *data, unsigned short size,
|
|
||||||
+dwarf2_loc_desc_needs_frame (const gdb_byte *data, size_t size,
|
|
||||||
struct dwarf2_per_cu_data *per_cu)
|
|
||||||
{
|
|
||||||
struct needs_frame_baton baton;
|
|
||||||
@@ -3827,7 +3827,7 @@
|
|
||||||
static void
|
|
||||||
locexpr_describe_location_1 (struct symbol *symbol, CORE_ADDR addr,
|
|
||||||
struct ui_file *stream,
|
|
||||||
- const gdb_byte *data, int size,
|
|
||||||
+ const gdb_byte *data, size_t size,
|
|
||||||
struct objfile *objfile, unsigned int addr_size,
|
|
||||||
int offset_size, struct dwarf2_per_cu_data *per_cu)
|
|
||||||
{
|
|
||||||
--- src/gdb/dwarf2loc.h 2012/05/22 18:45:22 1.33
|
|
||||||
+++ src/gdb/dwarf2loc.h 2012/07/26 02:03:16 1.34
|
|
||||||
@@ -77,7 +77,7 @@
|
|
||||||
struct value *dwarf2_evaluate_loc_desc (struct type *type,
|
|
||||||
struct frame_info *frame,
|
|
||||||
const gdb_byte *data,
|
|
||||||
- unsigned short size,
|
|
||||||
+ size_t size,
|
|
||||||
struct dwarf2_per_cu_data *per_cu);
|
|
||||||
|
|
||||||
CORE_ADDR dwarf2_read_addr_index (struct dwarf2_per_cu_data *per_cu,
|
|
||||||
@@ -97,7 +97,7 @@
|
|
||||||
|
|
||||||
/* Length of the location expression. For optimized out expressions it is
|
|
||||||
zero. */
|
|
||||||
- unsigned long size;
|
|
||||||
+ size_t size;
|
|
||||||
|
|
||||||
/* The compilation unit containing the symbol whose location
|
|
||||||
we're computing. */
|
|
||||||
@@ -114,7 +114,7 @@
|
|
||||||
const gdb_byte *data;
|
|
||||||
|
|
||||||
/* Length of the location list. */
|
|
||||||
- unsigned long size;
|
|
||||||
+ size_t size;
|
|
||||||
|
|
||||||
/* The compilation unit containing the symbol whose location
|
|
||||||
we're computing. */
|
|
||||||
--- src/gdb/dwarf2read.c 2012/07/20 17:38:04 1.697
|
|
||||||
+++ src/gdb/dwarf2read.c 2012/07/26 02:03:16 1.698
|
|
||||||
@@ -990,7 +990,7 @@
|
|
||||||
/* Blocks are a bunch of untyped bytes. */
|
|
||||||
struct dwarf_block
|
|
||||||
{
|
|
||||||
- unsigned int size;
|
|
||||||
+ size_t size;
|
|
||||||
|
|
||||||
/* Valid only if SIZE is not zero. */
|
|
||||||
gdb_byte *data;
|
|
||||||
@@ -16197,12 +16197,12 @@
|
|
||||||
case DW_FORM_block4:
|
|
||||||
case DW_FORM_block:
|
|
||||||
case DW_FORM_block1:
|
|
||||||
- fprintf_unfiltered (f, "block: size %d",
|
|
||||||
- DW_BLOCK (&die->attrs[i])->size);
|
|
||||||
+ fprintf_unfiltered (f, "block: size %s",
|
|
||||||
+ pulongest (DW_BLOCK (&die->attrs[i])->size));
|
|
||||||
break;
|
|
||||||
case DW_FORM_exprloc:
|
|
||||||
- fprintf_unfiltered (f, "expression: size %u",
|
|
||||||
- DW_BLOCK (&die->attrs[i])->size);
|
|
||||||
+ fprintf_unfiltered (f, "expression: size %s",
|
|
||||||
+ pulongest (DW_BLOCK (&die->attrs[i])->size));
|
|
||||||
break;
|
|
||||||
case DW_FORM_ref_addr:
|
|
||||||
fprintf_unfiltered (f, "ref address: ");
|
|
||||||
@@ -16746,8 +16746,8 @@
|
|
||||||
decode_locdesc (struct dwarf_block *blk, struct dwarf2_cu *cu)
|
|
||||||
{
|
|
||||||
struct objfile *objfile = cu->objfile;
|
|
||||||
- int i;
|
|
||||||
- int size = blk->size;
|
|
||||||
+ size_t i;
|
|
||||||
+ size_t size = blk->size;
|
|
||||||
gdb_byte *data = blk->data;
|
|
||||||
CORE_ADDR stack[64];
|
|
||||||
int stacki;
|
|
@ -1,34 +0,0 @@
|
|||||||
http://sourceware.org/ml/gdb-cvs/2012-08/msg00085.html
|
|
||||||
|
|
||||||
### src/gdb/ChangeLog 2012/08/10 05:03:07 1.14574
|
|
||||||
### src/gdb/ChangeLog 2012/08/10 18:55:16 1.14575
|
|
||||||
## -1,3 +1,9 @@
|
|
||||||
+2012-08-10 Siddhesh Poyarekar <siddhesh@redhat.com>
|
|
||||||
+
|
|
||||||
+ * python/py-type.c (convert_field): Use gdb_py_long_from_longest
|
|
||||||
+ for TYPE_FIELD_BITPOS.
|
|
||||||
+ (typy_get_sizeof): Likewise for TYPE_LENGTH.
|
|
||||||
+
|
|
||||||
2012-08-10 Mike Frysinger <vapier@gentoo.org>
|
|
||||||
|
|
||||||
PR cli/10436:
|
|
||||||
--- src/gdb/python/py-type.c 2012/05/18 21:02:52 1.39
|
|
||||||
+++ src/gdb/python/py-type.c 2012/08/10 18:55:18 1.40
|
|
||||||
@@ -176,7 +176,7 @@
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
- arg = PyLong_FromLong (TYPE_FIELD_BITPOS (type, field));
|
|
||||||
+ arg = gdb_py_long_from_longest (TYPE_FIELD_BITPOS (type, field));
|
|
||||||
attrstring = "bitpos";
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -683,7 +683,7 @@
|
|
||||||
}
|
|
||||||
/* Ignore exceptions. */
|
|
||||||
|
|
||||||
- return PyLong_FromLong (TYPE_LENGTH (type));
|
|
||||||
+ return gdb_py_long_from_longest (TYPE_LENGTH (type));
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct type *
|
|
@ -1,119 +0,0 @@
|
|||||||
http://sourceware.org/ml/gdb-cvs/2012-08/msg00187.html
|
|
||||||
|
|
||||||
### src/gdb/ChangeLog 2012/08/24 03:17:12 1.14628
|
|
||||||
### src/gdb/ChangeLog 2012/08/24 03:57:22 1.14629
|
|
||||||
## -1,3 +1,11 @@
|
|
||||||
+2012-08-24 Siddhesh Poyarekar <siddhesh@redhat.com>
|
|
||||||
+
|
|
||||||
+ * h8300-tdep.c (h8300_push_dummy_call): Replace unsafe alloca
|
|
||||||
+ with xmalloc/cleanup.
|
|
||||||
+ * mt-tdep.c (mt_push_dummy_call): Likewise.
|
|
||||||
+ * tilegx-tdep.c (tilegx_push_dummy_call): Likewise.
|
|
||||||
+ * xstormy16-tdep.c (xstormy16_push_dummy_call): Likewise.
|
|
||||||
+
|
|
||||||
2012-08-24 Yao Qi <yao@codesourcery.com>
|
|
||||||
|
|
||||||
* jv-exp.y (push_expression_name): Add "." at the end of error
|
|
||||||
--- src/gdb/h8300-tdep.c 2012/05/18 21:02:47 1.133
|
|
||||||
+++ src/gdb/h8300-tdep.c 2012/08/24 03:57:22 1.134
|
|
||||||
@@ -666,13 +666,15 @@
|
|
||||||
|
|
||||||
for (argument = 0; argument < nargs; argument++)
|
|
||||||
{
|
|
||||||
+ struct cleanup *back_to;
|
|
||||||
struct type *type = value_type (args[argument]);
|
|
||||||
int len = TYPE_LENGTH (type);
|
|
||||||
char *contents = (char *) value_contents (args[argument]);
|
|
||||||
|
|
||||||
/* Pad the argument appropriately. */
|
|
||||||
int padded_len = align_up (len, wordsize);
|
|
||||||
- gdb_byte *padded = alloca (padded_len);
|
|
||||||
+ gdb_byte *padded = xmalloc (padded_len);
|
|
||||||
+ back_to = make_cleanup (xfree, padded);
|
|
||||||
|
|
||||||
memset (padded, 0, padded_len);
|
|
||||||
memcpy (len < wordsize ? padded + padded_len - len : padded,
|
|
||||||
@@ -720,6 +722,8 @@
|
|
||||||
subsequent arguments go on the stack. */
|
|
||||||
reg = E_ARGLAST_REGNUM + 1;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ do_cleanups (back_to);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Store return address. */
|
|
||||||
--- src/gdb/mt-tdep.c 2012/05/16 14:35:06 1.40
|
|
||||||
+++ src/gdb/mt-tdep.c 2012/08/24 03:57:22 1.41
|
|
||||||
@@ -845,16 +845,20 @@
|
|
||||||
for (j = nargs - 1; j >= i; j--)
|
|
||||||
{
|
|
||||||
gdb_byte *val;
|
|
||||||
+ struct cleanup *back_to;
|
|
||||||
+ const gdb_byte *contents = value_contents (args[j]);
|
|
||||||
|
|
||||||
/* Right-justify the value in an aligned-length buffer. */
|
|
||||||
typelen = TYPE_LENGTH (value_type (args[j]));
|
|
||||||
slacklen = (wordsize - (typelen % wordsize)) % wordsize;
|
|
||||||
- val = alloca (typelen + slacklen);
|
|
||||||
- memcpy (val, value_contents (args[j]), typelen);
|
|
||||||
+ val = xmalloc (typelen + slacklen);
|
|
||||||
+ back_to = make_cleanup (xfree, val);
|
|
||||||
+ memcpy (val, contents, typelen);
|
|
||||||
memset (val + typelen, 0, slacklen);
|
|
||||||
/* Now write this data to the stack. */
|
|
||||||
stack_dest -= typelen + slacklen;
|
|
||||||
write_memory (stack_dest, val, typelen + slacklen);
|
|
||||||
+ do_cleanups (back_to);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Finally, if a param needs to be split between registers and stack,
|
|
||||||
--- src/gdb/tilegx-tdep.c 2012/05/30 19:31:44 1.1
|
|
||||||
+++ src/gdb/tilegx-tdep.c 2012/08/24 03:57:22 1.2
|
|
||||||
@@ -343,16 +343,20 @@
|
|
||||||
for (j = nargs - 1; j >= i; j--)
|
|
||||||
{
|
|
||||||
gdb_byte *val;
|
|
||||||
+ struct cleanup *back_to;
|
|
||||||
+ const gdb_byte *contents = value_contents (args[j]);
|
|
||||||
|
|
||||||
typelen = TYPE_LENGTH (value_enclosing_type (args[j]));
|
|
||||||
slacklen = ((typelen + 3) & (~3)) - typelen;
|
|
||||||
- val = alloca (typelen + slacklen);
|
|
||||||
- memcpy (val, value_contents (args[j]), typelen);
|
|
||||||
+ val = xmalloc (typelen + slacklen);
|
|
||||||
+ back_to = make_cleanup (xfree, val);
|
|
||||||
+ memcpy (val, contents, typelen);
|
|
||||||
memset (val + typelen, 0, slacklen);
|
|
||||||
|
|
||||||
/* Now write data to the stack. The stack grows downwards. */
|
|
||||||
stack_dest -= typelen + slacklen;
|
|
||||||
write_memory (stack_dest, val, typelen + slacklen);
|
|
||||||
+ do_cleanups (back_to);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Add 2 words for linkage space to the stack. */
|
|
||||||
--- src/gdb/xstormy16-tdep.c 2012/05/16 14:35:08 1.118
|
|
||||||
+++ src/gdb/xstormy16-tdep.c 2012/08/24 03:57:22 1.119
|
|
||||||
@@ -279,16 +279,20 @@
|
|
||||||
for (j = nargs - 1; j >= i; j--)
|
|
||||||
{
|
|
||||||
char *val;
|
|
||||||
+ struct cleanup *back_to;
|
|
||||||
+ const gdb_byte *bytes = value_contents (args[j]);
|
|
||||||
|
|
||||||
typelen = TYPE_LENGTH (value_enclosing_type (args[j]));
|
|
||||||
slacklen = typelen & 1;
|
|
||||||
- val = alloca (typelen + slacklen);
|
|
||||||
- memcpy (val, value_contents (args[j]), typelen);
|
|
||||||
+ val = xmalloc (typelen + slacklen);
|
|
||||||
+ back_to = make_cleanup (xfree, val);
|
|
||||||
+ memcpy (val, bytes, typelen);
|
|
||||||
memset (val + typelen, 0, slacklen);
|
|
||||||
|
|
||||||
/* Now write this data to the stack. The stack grows upwards. */
|
|
||||||
write_memory (stack_dest, val, typelen + slacklen);
|
|
||||||
stack_dest += typelen + slacklen;
|
|
||||||
+ do_cleanups (back_to);
|
|
||||||
}
|
|
||||||
|
|
||||||
store_unsigned_integer (buf, xstormy16_pc_size, byte_order, bp_addr);
|
|
@ -1,34 +0,0 @@
|
|||||||
http://sourceware.org/ml/gdb-cvs/2012-09/msg00065.html
|
|
||||||
|
|
||||||
### src/gdb/ChangeLog 2012/09/14 00:54:57 1.14656
|
|
||||||
### src/gdb/ChangeLog 2012/09/14 07:00:37 1.14657
|
|
||||||
## -1,3 +1,8 @@
|
|
||||||
+2012-09-14 Siddhesh Poyarekar <siddhesh@redhat.com>
|
|
||||||
+
|
|
||||||
+ * printcmd.c (ui_printf): Eliminate single-use variable
|
|
||||||
+ PARAM_LEN.
|
|
||||||
+
|
|
||||||
2012-09-14 Yao Qi <yao@codesourcery.com>
|
|
||||||
Pedro Alves <palves@redhat.com>
|
|
||||||
|
|
||||||
--- src/gdb/printcmd.c 2012/09/11 21:26:16 1.211
|
|
||||||
+++ src/gdb/printcmd.c 2012/09/14 07:00:42 1.212
|
|
||||||
@@ -2267,7 +2267,6 @@
|
|
||||||
|
|
||||||
/* Parameter data. */
|
|
||||||
struct type *param_type = value_type (val_args[i]);
|
|
||||||
- unsigned int param_len = TYPE_LENGTH (param_type);
|
|
||||||
struct gdbarch *gdbarch = get_type_arch (param_type);
|
|
||||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
|
||||||
|
|
||||||
@@ -2329,8 +2328,8 @@
|
|
||||||
|
|
||||||
/* Conversion between different DFP types. */
|
|
||||||
if (TYPE_CODE (param_type) == TYPE_CODE_DECFLOAT)
|
|
||||||
- decimal_convert (param_ptr, param_len, byte_order,
|
|
||||||
- dec, dfp_len, byte_order);
|
|
||||||
+ decimal_convert (param_ptr, TYPE_LENGTH (param_type),
|
|
||||||
+ byte_order, dec, dfp_len, byte_order);
|
|
||||||
else
|
|
||||||
/* If this is a non-trivial conversion, just output 0.
|
|
||||||
A correct converted value can be displayed by explicitly
|
|
@ -1,66 +0,0 @@
|
|||||||
http://sourceware.org/ml/gdb-cvs/2012-09/msg00068.html
|
|
||||||
|
|
||||||
### src/gdb/ChangeLog 2012/09/14 12:10:21 1.14659
|
|
||||||
### src/gdb/ChangeLog 2012/09/14 12:46:55 1.14660
|
|
||||||
## -1,3 +1,8 @@
|
|
||||||
+2012-09-14 Siddhesh Poyarekar <siddhesh@redhat.com>
|
|
||||||
+
|
|
||||||
+ * valarith.c (value_concat): Replace unsafe ALLOCA with
|
|
||||||
+ XMALLOC/XFREE.
|
|
||||||
+
|
|
||||||
2012-09-14 Pedro Alves <palves@redhat.com>
|
|
||||||
|
|
||||||
* gdb.1 (SEE ALSO): Expand pointer to GDB's Texinfo manual.
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/valarith.c
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/valarith.c 2012-11-07 22:00:41.000000000 +0100
|
|
||||||
+++ gdb-7.5.0.20120926/gdb/valarith.c 2012-11-07 22:02:18.661767281 +0100
|
|
||||||
@@ -716,9 +716,12 @@ value_concat (struct value *arg1, struct
|
|
||||||
if (TYPE_CODE (type2) == TYPE_CODE_STRING
|
|
||||||
|| TYPE_CODE (type2) == TYPE_CODE_CHAR)
|
|
||||||
{
|
|
||||||
+ struct cleanup *back_to;
|
|
||||||
+
|
|
||||||
count = longest_to_int (value_as_long (inval1));
|
|
||||||
inval2len = TYPE_LENGTH (type2);
|
|
||||||
- ptr = (char *) alloca (count * inval2len);
|
|
||||||
+ ptr = (char *) xmalloc (count * inval2len);
|
|
||||||
+ back_to = make_cleanup (xfree, ptr);
|
|
||||||
if (TYPE_CODE (type2) == TYPE_CODE_CHAR)
|
|
||||||
{
|
|
||||||
char_type = type2;
|
|
||||||
@@ -741,6 +744,7 @@ value_concat (struct value *arg1, struct
|
|
||||||
}
|
|
||||||
}
|
|
||||||
outval = value_string (ptr, count * inval2len, char_type);
|
|
||||||
+ do_cleanups (back_to);
|
|
||||||
}
|
|
||||||
else if (TYPE_CODE (type2) == TYPE_CODE_BITSTRING
|
|
||||||
|| TYPE_CODE (type2) == TYPE_CODE_BOOL)
|
|
||||||
@@ -755,6 +759,8 @@ value_concat (struct value *arg1, struct
|
|
||||||
else if (TYPE_CODE (type1) == TYPE_CODE_STRING
|
|
||||||
|| TYPE_CODE (type1) == TYPE_CODE_CHAR)
|
|
||||||
{
|
|
||||||
+ struct cleanup *back_to;
|
|
||||||
+
|
|
||||||
/* We have two character strings to concatenate. */
|
|
||||||
if (TYPE_CODE (type2) != TYPE_CODE_STRING
|
|
||||||
&& TYPE_CODE (type2) != TYPE_CODE_CHAR)
|
|
||||||
@@ -763,7 +769,8 @@ value_concat (struct value *arg1, struct
|
|
||||||
}
|
|
||||||
inval1len = TYPE_LENGTH (type1);
|
|
||||||
inval2len = TYPE_LENGTH (type2);
|
|
||||||
- ptr = (char *) alloca (inval1len + inval2len);
|
|
||||||
+ ptr = (char *) xmalloc (inval1len + inval2len);
|
|
||||||
+ back_to = make_cleanup (xfree, ptr);
|
|
||||||
if (TYPE_CODE (type1) == TYPE_CODE_CHAR)
|
|
||||||
{
|
|
||||||
char_type = type1;
|
|
||||||
@@ -786,6 +793,7 @@ value_concat (struct value *arg1, struct
|
|
||||||
memcpy (ptr + inval1len, value_contents (inval2), inval2len);
|
|
||||||
}
|
|
||||||
outval = value_string (ptr, inval1len + inval2len, char_type);
|
|
||||||
+ do_cleanups (back_to);
|
|
||||||
}
|
|
||||||
else if (TYPE_CODE (type1) == TYPE_CODE_BITSTRING
|
|
||||||
|| TYPE_CODE (type1) == TYPE_CODE_BOOL)
|
|
@ -1,28 +0,0 @@
|
|||||||
http://sourceware.org/ml/gdb-cvs/2012-09/msg00082.html
|
|
||||||
|
|
||||||
### src/gdb/ChangeLog 2012/09/17 07:15:47 1.14664
|
|
||||||
### src/gdb/ChangeLog 2012/09/17 07:26:54 1.14665
|
|
||||||
## -1,3 +1,8 @@
|
|
||||||
+2012-09-17 Siddhesh Poyarekar <siddhesh@redhat.com>
|
|
||||||
+
|
|
||||||
+ * infrun.c (restore_infcall_suspend_state): Eliminate single-use
|
|
||||||
+ variable LEN.
|
|
||||||
+
|
|
||||||
2012-09-17 Jan Kratochvil <jan.kratochvil@redhat.com>
|
|
||||||
|
|
||||||
PR 14119
|
|
||||||
--- src/gdb/infrun.c 2012/09/17 07:09:34 1.558
|
|
||||||
+++ src/gdb/infrun.c 2012/09/17 07:26:55 1.559
|
|
||||||
@@ -6777,11 +6777,10 @@
|
|
||||||
if (inf_state->siginfo_gdbarch == gdbarch)
|
|
||||||
{
|
|
||||||
struct type *type = gdbarch_get_siginfo_type (gdbarch);
|
|
||||||
- size_t len = TYPE_LENGTH (type);
|
|
||||||
|
|
||||||
/* Errors ignored. */
|
|
||||||
target_write (¤t_target, TARGET_OBJECT_SIGNAL_INFO, NULL,
|
|
||||||
- inf_state->siginfo_data, 0, len);
|
|
||||||
+ inf_state->siginfo_data, 0, TYPE_LENGTH (type));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* The inferior can be gone if the user types "print exit(0)"
|
|
@ -1,209 +0,0 @@
|
|||||||
http://sourceware.org/ml/gdb-cvs/2012-09/msg00084.html
|
|
||||||
|
|
||||||
### src/gdb/ChangeLog 2012/09/17 08:42:07 1.14666
|
|
||||||
### src/gdb/ChangeLog 2012/09/17 08:52:17 1.14667
|
|
||||||
## -1,3 +1,23 @@
|
|
||||||
+2012-09-17 Siddhesh Poyarekar <siddhesh@redhat.com>
|
|
||||||
+
|
|
||||||
+ * m2-valprint.c (m2_print_array_contents): Eliminate variable
|
|
||||||
+ ELTLEN and use TYPE_LENGTH directly.
|
|
||||||
+ (m2_val_print): Likewise.
|
|
||||||
+ * m68k-tdep.c (m68k_svr4_extract_return_value): Eliminate
|
|
||||||
+ variable LEN and use TYPE_LENGTH directly.
|
|
||||||
+ (m68k_svr4_store_return_value): Likewise.
|
|
||||||
+ * mips-tdep.c (mips_o32_push_dummy_call): Eliminate variable
|
|
||||||
+ ARGLEN and use TYPE_LENGTH directly.
|
|
||||||
+ (mips_o64_push_dummy_call): Likewise.
|
|
||||||
+ * s390-tdep (s390_function_arg_pass_by_reference): Eliminate
|
|
||||||
+ variable LENGTH and use TYPE_LENGTH directly.
|
|
||||||
+ (s390_function_arg_float): Likewise.
|
|
||||||
+ (s390_function_arg_integer): Likewise.
|
|
||||||
+ (s390_push_dummy_call): Likewise.
|
|
||||||
+ (s390_return_value_convention): Likewise.
|
|
||||||
+ * spu-tdep.c (spu_push_dummy_call): Eliminate LEN and use
|
|
||||||
+ TYPE_LENGTH directly.
|
|
||||||
+
|
|
||||||
2012-09-17 Yao Qi <yao@codesourcery.com>
|
|
||||||
|
|
||||||
* cli/cli-decode.c (add_setshow_zuinteger_unlimited_cmd): New.
|
|
||||||
--- src/gdb/m2-valprint.c 2012/08/16 07:36:20 1.45
|
|
||||||
+++ src/gdb/m2-valprint.c 2012/09/17 08:52:18 1.46
|
|
||||||
@@ -269,16 +269,14 @@
|
|
||||||
const struct value_print_options *options,
|
|
||||||
int len)
|
|
||||||
{
|
|
||||||
- int eltlen;
|
|
||||||
CHECK_TYPEDEF (type);
|
|
||||||
|
|
||||||
if (TYPE_LENGTH (type) > 0)
|
|
||||||
{
|
|
||||||
- eltlen = TYPE_LENGTH (type);
|
|
||||||
if (options->prettyprint_arrays)
|
|
||||||
print_spaces_filtered (2 + 2 * recurse, stream);
|
|
||||||
/* For an array of chars, print with string syntax. */
|
|
||||||
- if (eltlen == 1 &&
|
|
||||||
+ if (TYPE_LENGTH (type) == 1 &&
|
|
||||||
((TYPE_CODE (type) == TYPE_CODE_INT)
|
|
||||||
|| ((current_language->la_language == language_m2)
|
|
||||||
&& (TYPE_CODE (type) == TYPE_CODE_CHAR)))
|
|
||||||
@@ -320,7 +318,6 @@
|
|
||||||
unsigned int i = 0; /* Number of characters printed. */
|
|
||||||
unsigned len;
|
|
||||||
struct type *elttype;
|
|
||||||
- unsigned eltlen;
|
|
||||||
CORE_ADDR addr;
|
|
||||||
|
|
||||||
CHECK_TYPEDEF (type);
|
|
||||||
@@ -330,12 +327,11 @@
|
|
||||||
if (TYPE_LENGTH (type) > 0 && TYPE_LENGTH (TYPE_TARGET_TYPE (type)) > 0)
|
|
||||||
{
|
|
||||||
elttype = check_typedef (TYPE_TARGET_TYPE (type));
|
|
||||||
- eltlen = TYPE_LENGTH (elttype);
|
|
||||||
- len = TYPE_LENGTH (type) / eltlen;
|
|
||||||
+ len = TYPE_LENGTH (type) / TYPE_LENGTH (elttype);
|
|
||||||
if (options->prettyprint_arrays)
|
|
||||||
print_spaces_filtered (2 + 2 * recurse, stream);
|
|
||||||
/* For an array of chars, print with string syntax. */
|
|
||||||
- if (eltlen == 1 &&
|
|
||||||
+ if (TYPE_LENGTH (elttype) == 1 &&
|
|
||||||
((TYPE_CODE (elttype) == TYPE_CODE_INT)
|
|
||||||
|| ((current_language->la_language == language_m2)
|
|
||||||
&& (TYPE_CODE (elttype) == TYPE_CODE_CHAR)))
|
|
||||||
--- src/gdb/m68k-tdep.c 2012/07/24 16:37:24 1.159
|
|
||||||
+++ src/gdb/m68k-tdep.c 2012/09/17 08:52:18 1.160
|
|
||||||
@@ -315,7 +315,6 @@
|
|
||||||
m68k_svr4_extract_return_value (struct type *type, struct regcache *regcache,
|
|
||||||
gdb_byte *valbuf)
|
|
||||||
{
|
|
||||||
- int len = TYPE_LENGTH (type);
|
|
||||||
gdb_byte buf[M68K_MAX_REGISTER_SIZE];
|
|
||||||
struct gdbarch *gdbarch = get_regcache_arch (regcache);
|
|
||||||
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
|
|
||||||
@@ -326,7 +325,7 @@
|
|
||||||
regcache_raw_read (regcache, M68K_FP0_REGNUM, buf);
|
|
||||||
convert_typed_floating (buf, fpreg_type, valbuf, type);
|
|
||||||
}
|
|
||||||
- else if (TYPE_CODE (type) == TYPE_CODE_PTR && len == 4)
|
|
||||||
+ else if (TYPE_CODE (type) == TYPE_CODE_PTR && TYPE_LENGTH (type) == 4)
|
|
||||||
regcache_raw_read (regcache, M68K_A0_REGNUM, valbuf);
|
|
||||||
else
|
|
||||||
m68k_extract_return_value (type, regcache, valbuf);
|
|
||||||
@@ -357,7 +356,6 @@
|
|
||||||
m68k_svr4_store_return_value (struct type *type, struct regcache *regcache,
|
|
||||||
const gdb_byte *valbuf)
|
|
||||||
{
|
|
||||||
- int len = TYPE_LENGTH (type);
|
|
||||||
struct gdbarch *gdbarch = get_regcache_arch (regcache);
|
|
||||||
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
|
|
||||||
|
|
||||||
@@ -368,7 +366,7 @@
|
|
||||||
convert_typed_floating (valbuf, type, buf, fpreg_type);
|
|
||||||
regcache_raw_write (regcache, M68K_FP0_REGNUM, buf);
|
|
||||||
}
|
|
||||||
- else if (TYPE_CODE (type) == TYPE_CODE_PTR && len == 4)
|
|
||||||
+ else if (TYPE_CODE (type) == TYPE_CODE_PTR && TYPE_LENGTH (type) == 4)
|
|
||||||
{
|
|
||||||
regcache_raw_write (regcache, M68K_A0_REGNUM, valbuf);
|
|
||||||
regcache_raw_write (regcache, M68K_D0_REGNUM, valbuf);
|
|
||||||
--- src/gdb/mips-tdep.c 2012/08/19 22:22:49 1.561
|
|
||||||
+++ src/gdb/mips-tdep.c 2012/09/17 08:52:18 1.562
|
|
||||||
@@ -5174,13 +5174,12 @@
|
|
||||||
for (argnum = 0; argnum < nargs; argnum++)
|
|
||||||
{
|
|
||||||
struct type *arg_type = check_typedef (value_type (args[argnum]));
|
|
||||||
- int arglen = TYPE_LENGTH (arg_type);
|
|
||||||
|
|
||||||
/* Align to double-word if necessary. */
|
|
||||||
if (mips_type_needs_double_align (arg_type))
|
|
||||||
len = align_up (len, MIPS32_REGSIZE * 2);
|
|
||||||
/* Allocate space on the stack. */
|
|
||||||
- len += align_up (arglen, MIPS32_REGSIZE);
|
|
||||||
+ len += align_up (TYPE_LENGTH (arg_type), MIPS32_REGSIZE);
|
|
||||||
}
|
|
||||||
sp -= align_up (len, 16);
|
|
||||||
|
|
||||||
@@ -5703,10 +5702,9 @@
|
|
||||||
for (argnum = 0; argnum < nargs; argnum++)
|
|
||||||
{
|
|
||||||
struct type *arg_type = check_typedef (value_type (args[argnum]));
|
|
||||||
- int arglen = TYPE_LENGTH (arg_type);
|
|
||||||
|
|
||||||
/* Allocate space on the stack. */
|
|
||||||
- len += align_up (arglen, MIPS64_REGSIZE);
|
|
||||||
+ len += align_up (TYPE_LENGTH (arg_type), MIPS64_REGSIZE);
|
|
||||||
}
|
|
||||||
sp -= align_up (len, 16);
|
|
||||||
|
|
||||||
--- src/gdb/s390-tdep.c 2012/05/18 21:02:50 1.206
|
|
||||||
+++ src/gdb/s390-tdep.c 2012/09/17 08:52:18 1.207
|
|
||||||
@@ -2489,8 +2489,7 @@
|
|
||||||
static int
|
|
||||||
s390_function_arg_pass_by_reference (struct type *type)
|
|
||||||
{
|
|
||||||
- unsigned length = TYPE_LENGTH (type);
|
|
||||||
- if (length > 8)
|
|
||||||
+ if (TYPE_LENGTH (type) > 8)
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
return (is_struct_like (type) && !is_power_of_two (TYPE_LENGTH (type)))
|
|
||||||
@@ -2503,8 +2502,7 @@
|
|
||||||
static int
|
|
||||||
s390_function_arg_float (struct type *type)
|
|
||||||
{
|
|
||||||
- unsigned length = TYPE_LENGTH (type);
|
|
||||||
- if (length > 8)
|
|
||||||
+ if (TYPE_LENGTH (type) > 8)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
return is_float_like (type);
|
|
||||||
@@ -2515,13 +2513,12 @@
|
|
||||||
static int
|
|
||||||
s390_function_arg_integer (struct type *type)
|
|
||||||
{
|
|
||||||
- unsigned length = TYPE_LENGTH (type);
|
|
||||||
- if (length > 8)
|
|
||||||
+ if (TYPE_LENGTH (type) > 8)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
return is_integer_like (type)
|
|
||||||
|| is_pointer_like (type)
|
|
||||||
- || (is_struct_like (type) && is_power_of_two (length));
|
|
||||||
+ || (is_struct_like (type) && is_power_of_two (TYPE_LENGTH (type)));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Return ARG, a `SIMPLE_ARG', sign-extended or zero-extended to a full
|
|
||||||
@@ -2616,11 +2613,10 @@
|
|
||||||
{
|
|
||||||
struct value *arg = args[i];
|
|
||||||
struct type *type = check_typedef (value_type (arg));
|
|
||||||
- unsigned length = TYPE_LENGTH (type);
|
|
||||||
|
|
||||||
if (s390_function_arg_pass_by_reference (type))
|
|
||||||
{
|
|
||||||
- sp -= length;
|
|
||||||
+ sp -= TYPE_LENGTH (type);
|
|
||||||
sp = align_down (sp, alignment_of (type));
|
|
||||||
copy_addr[i] = sp;
|
|
||||||
}
|
|
||||||
@@ -2799,8 +2795,7 @@
|
|
||||||
static enum return_value_convention
|
|
||||||
s390_return_value_convention (struct gdbarch *gdbarch, struct type *type)
|
|
||||||
{
|
|
||||||
- int length = TYPE_LENGTH (type);
|
|
||||||
- if (length > 8)
|
|
||||||
+ if (TYPE_LENGTH (type) > 8)
|
|
||||||
return RETURN_VALUE_STRUCT_CONVENTION;
|
|
||||||
|
|
||||||
switch (TYPE_CODE (type))
|
|
||||||
--- src/gdb/spu-tdep.c 2012/05/18 21:02:50 1.81
|
|
||||||
+++ src/gdb/spu-tdep.c 2012/09/17 08:52:18 1.82
|
|
||||||
@@ -1373,8 +1373,7 @@
|
|
||||||
struct value *arg = args[i];
|
|
||||||
struct type *type = check_typedef (value_type (arg));
|
|
||||||
const gdb_byte *contents = value_contents (arg);
|
|
||||||
- int len = TYPE_LENGTH (type);
|
|
||||||
- int n_regs = align_up (len, 16) / 16;
|
|
||||||
+ int n_regs = align_up (TYPE_LENGTH (type), 16) / 16;
|
|
||||||
|
|
||||||
/* If the argument doesn't wholly fit into registers, it and
|
|
||||||
all subsequent arguments go to the stack. */
|
|
@ -1,36 +0,0 @@
|
|||||||
http://sourceware.org/ml/gdb-cvs/2012-09/msg00132.html
|
|
||||||
|
|
||||||
### src/gdb/ChangeLog 2012/09/22 13:04:54 1.14691
|
|
||||||
### src/gdb/ChangeLog 2012/09/24 10:25:07 1.14692
|
|
||||||
## -1,3 +1,8 @@
|
|
||||||
+2012-09-24 Siddhesh Poyarekar <siddhesh@redhat.com>
|
|
||||||
+
|
|
||||||
+ * m2-typeprint.c (m2_enum): Expand LASTVAL to LONGEST.
|
|
||||||
+ * p-valprint.c (pascal_type_print_base): Likewise.
|
|
||||||
+
|
|
||||||
2012-09-22 Yao Qi <yao@codesourcery.com>
|
|
||||||
|
|
||||||
* remote.c (remote_get_trace_status): Remove setting default
|
|
||||||
--- src/gdb/m2-typeprint.c 2012/04/18 06:46:46 1.30
|
|
||||||
+++ src/gdb/m2-typeprint.c 2012/09/24 10:25:09 1.31
|
|
||||||
@@ -587,7 +587,8 @@
|
|
||||||
void
|
|
||||||
m2_enum (struct type *type, struct ui_file *stream, int show, int level)
|
|
||||||
{
|
|
||||||
- int lastval, i, len;
|
|
||||||
+ LONGEST lastval;
|
|
||||||
+ int i, len;
|
|
||||||
|
|
||||||
if (show < 0)
|
|
||||||
{
|
|
||||||
--- src/gdb/p-typeprint.c 2012/08/16 07:36:20 1.47
|
|
||||||
+++ src/gdb/p-typeprint.c 2012/09/24 10:25:09 1.48
|
|
||||||
@@ -440,7 +440,7 @@
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
int len;
|
|
||||||
- int lastval;
|
|
||||||
+ LONGEST lastval;
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
s_none, s_public, s_private, s_protected
|
|
@ -1,27 +0,0 @@
|
|||||||
http://sourceware.org/ml/gdb-cvs/2012-09/msg00138.html
|
|
||||||
|
|
||||||
### src/gdb/ChangeLog 2012/09/24 10:25:07 1.14692
|
|
||||||
### src/gdb/ChangeLog 2012/09/25 12:20:35 1.14693
|
|
||||||
## -1,3 +1,8 @@
|
|
||||||
+2012-09-25 Siddhesh Poyarekar <siddhesh@redhat.com>
|
|
||||||
+
|
|
||||||
+ * c-typeprint.c (c_type_print_varspec_suffix): Remove cast and
|
|
||||||
+ use plongest to print the array size.
|
|
||||||
+
|
|
||||||
2012-09-24 Siddhesh Poyarekar <siddhesh@redhat.com>
|
|
||||||
|
|
||||||
* m2-typeprint.c (m2_enum): Expand LASTVAL to LONGEST.
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/c-typeprint.c
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/c-typeprint.c 2012-11-07 22:00:40.000000000 +0100
|
|
||||||
+++ gdb-7.5.0.20120926/gdb/c-typeprint.c 2012-11-07 22:03:39.269650157 +0100
|
|
||||||
@@ -631,7 +631,8 @@ c_type_print_varspec_suffix (struct type
|
|
||||||
fprintf_filtered (stream, "variable");
|
|
||||||
}
|
|
||||||
else if (get_array_bounds (type, &low_bound, &high_bound))
|
|
||||||
- fprintf_filtered (stream, "%d", (int) (high_bound - low_bound + 1));
|
|
||||||
+ fprintf_filtered (stream, "%s",
|
|
||||||
+ plongest (high_bound - low_bound + 1));
|
|
||||||
fprintf_filtered (stream, "]");
|
|
||||||
|
|
||||||
c_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream,
|
|
@ -1,729 +0,0 @@
|
|||||||
http://sourceware.org/ml/gdb-cvs/2012-09/msg00142.html
|
|
||||||
|
|
||||||
### src/gdb/ChangeLog 2012/09/25 12:38:55 1.14696
|
|
||||||
### src/gdb/ChangeLog 2012/09/25 12:48:52 1.14697
|
|
||||||
## -1,3 +1,36 @@
|
|
||||||
+2012-09-25 Siddhesh Poyarekar <siddhesh@redhat.com>
|
|
||||||
+
|
|
||||||
+ * ada-valprint.c (ada_val_print_1): Eliminate single-use
|
|
||||||
+ variable LEN.
|
|
||||||
+ * alpha-tdep.c (alpha_extract_return_value): Use TYPE_LENGTH
|
|
||||||
+ directly.
|
|
||||||
+ (alpha_store_return_value): Likewise.
|
|
||||||
+ * amd64-tdep.c (amd64_classify_aggregate): Likewise.
|
|
||||||
+ (amd64_push_arguments): Likewise.
|
|
||||||
+ * ax-gdb.c (gen_trace_static_fields): Likewise.
|
|
||||||
+ (gen_traced_pop): Likewise.
|
|
||||||
+ * bfin-tdep.c (bfin_push_dummy_call): Likewise.
|
|
||||||
+ * breakpoint.c (update_watchpoint): Likewise.
|
|
||||||
+ * findcmd.c (parse_find_args): Use local variable for type
|
|
||||||
+ instead of length.
|
|
||||||
+ * findvar.c (default_read_var_value): Use TYPE_LENGTH directly.
|
|
||||||
+ * h8300-tdep.c (h8300h_extract_return_value): Likewise.
|
|
||||||
+ (h8300_store_return_value): Likewise.
|
|
||||||
+ * i386-darwin-tdep.c (i386_darwin_push_dummy_call): Likewise.
|
|
||||||
+ Use i386_darwin_arg_type_alignment directly.
|
|
||||||
+ * infcall.c (call_function_by_hand): Use TYPE_LENGTH directly.
|
|
||||||
+ * lm32-tdep.c (lm32_push_dummy_call): Likewise.
|
|
||||||
+ * m68hc11-tdep.c (m68hc11_push_dummy_call): Likewise.
|
|
||||||
+ (m68hc11_extract_return_value): Likewise.
|
|
||||||
+ * mep-tdep.c (mep_push_dummy_call): Likewise.
|
|
||||||
+ * printcmd.c (float_type_from_length): Likewise.
|
|
||||||
+ * s390-tdep.c (s390_value_from_register): Likewise.
|
|
||||||
+ * stack.c (read_frame_arg): Likewise.
|
|
||||||
+ * tracepoint.c (encode_actions_1): Likewise.
|
|
||||||
+ * valops.c (value_fetch_lazy): Use local variable for type
|
|
||||||
+ instead of length. Use TYPE_LENGTH directly.
|
|
||||||
+ * value.c (value_contents_equal): Use TYPE_LENGTH directly.
|
|
||||||
+
|
|
||||||
2012-09-25 Joel Brobecker <brobecker@adacore.com>
|
|
||||||
|
|
||||||
* symtab.c (skip_prologue_sal): Fix typo in comment.
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/ada-valprint.c
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/ada-valprint.c 2012-04-18 08:46:46.000000000 +0200
|
|
||||||
+++ gdb-7.5.0.20120926/gdb/ada-valprint.c 2012-11-07 22:03:57.600623522 +0100
|
|
||||||
@@ -730,9 +730,8 @@ ada_val_print_1 (struct type *type, cons
|
|
||||||
if (ada_is_fixed_point_type (type))
|
|
||||||
{
|
|
||||||
LONGEST v = unpack_long (type, valaddr + offset_aligned);
|
|
||||||
- int len = TYPE_LENGTH (type);
|
|
||||||
|
|
||||||
- fprintf_filtered (stream, len < 4 ? "%.11g" : "%.17g",
|
|
||||||
+ fprintf_filtered (stream, TYPE_LENGTH (type) < 4 ? "%.11g" : "%.17g",
|
|
||||||
(double) ada_fixed_to_float (type, v));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/alpha-tdep.c
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/alpha-tdep.c 2012-05-16 16:35:02.000000000 +0200
|
|
||||||
+++ gdb-7.5.0.20120926/gdb/alpha-tdep.c 2012-11-07 22:03:57.602623520 +0100
|
|
||||||
@@ -475,14 +475,13 @@ alpha_extract_return_value (struct type
|
|
||||||
{
|
|
||||||
struct gdbarch *gdbarch = get_regcache_arch (regcache);
|
|
||||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
|
||||||
- int length = TYPE_LENGTH (valtype);
|
|
||||||
gdb_byte raw_buffer[ALPHA_REGISTER_SIZE];
|
|
||||||
ULONGEST l;
|
|
||||||
|
|
||||||
switch (TYPE_CODE (valtype))
|
|
||||||
{
|
|
||||||
case TYPE_CODE_FLT:
|
|
||||||
- switch (length)
|
|
||||||
+ switch (TYPE_LENGTH (valtype))
|
|
||||||
{
|
|
||||||
case 4:
|
|
||||||
regcache_cooked_read (regcache, ALPHA_FP0_REGNUM, raw_buffer);
|
|
||||||
@@ -505,7 +504,7 @@ alpha_extract_return_value (struct type
|
|
||||||
break;
|
|
||||||
|
|
||||||
case TYPE_CODE_COMPLEX:
|
|
||||||
- switch (length)
|
|
||||||
+ switch (TYPE_LENGTH (valtype))
|
|
||||||
{
|
|
||||||
case 8:
|
|
||||||
/* ??? This isn't correct wrt the ABI, but it's what GCC does. */
|
|
||||||
@@ -531,7 +530,7 @@ alpha_extract_return_value (struct type
|
|
||||||
default:
|
|
||||||
/* Assume everything else degenerates to an integer. */
|
|
||||||
regcache_cooked_read_unsigned (regcache, ALPHA_V0_REGNUM, &l);
|
|
||||||
- store_unsigned_integer (valbuf, length, byte_order, l);
|
|
||||||
+ store_unsigned_integer (valbuf, TYPE_LENGTH (valtype), byte_order, l);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -544,14 +543,13 @@ alpha_store_return_value (struct type *v
|
|
||||||
const gdb_byte *valbuf)
|
|
||||||
{
|
|
||||||
struct gdbarch *gdbarch = get_regcache_arch (regcache);
|
|
||||||
- int length = TYPE_LENGTH (valtype);
|
|
||||||
gdb_byte raw_buffer[ALPHA_REGISTER_SIZE];
|
|
||||||
ULONGEST l;
|
|
||||||
|
|
||||||
switch (TYPE_CODE (valtype))
|
|
||||||
{
|
|
||||||
case TYPE_CODE_FLT:
|
|
||||||
- switch (length)
|
|
||||||
+ switch (TYPE_LENGTH (valtype))
|
|
||||||
{
|
|
||||||
case 4:
|
|
||||||
alpha_lds (gdbarch, raw_buffer, valbuf);
|
|
||||||
@@ -575,7 +573,7 @@ alpha_store_return_value (struct type *v
|
|
||||||
break;
|
|
||||||
|
|
||||||
case TYPE_CODE_COMPLEX:
|
|
||||||
- switch (length)
|
|
||||||
+ switch (TYPE_LENGTH (valtype))
|
|
||||||
{
|
|
||||||
case 8:
|
|
||||||
/* ??? This isn't correct wrt the ABI, but it's what GCC does. */
|
|
||||||
@@ -603,7 +601,7 @@ alpha_store_return_value (struct type *v
|
|
||||||
/* Assume everything else degenerates to an integer. */
|
|
||||||
/* 32-bit values must be sign-extended to 64 bits
|
|
||||||
even if the base data type is unsigned. */
|
|
||||||
- if (length == 4)
|
|
||||||
+ if (TYPE_LENGTH (valtype) == 4)
|
|
||||||
valtype = builtin_type (gdbarch)->builtin_int32;
|
|
||||||
l = unpack_long (valtype, valbuf);
|
|
||||||
regcache_cooked_write_unsigned (regcache, ALPHA_V0_REGNUM, l);
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/amd64-tdep.c
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/amd64-tdep.c 2012-11-07 22:00:42.000000000 +0100
|
|
||||||
+++ gdb-7.5.0.20120926/gdb/amd64-tdep.c 2012-11-07 22:03:57.623623489 +0100
|
|
||||||
@@ -446,12 +446,10 @@ amd64_non_pod_p (struct type *type)
|
|
||||||
static void
|
|
||||||
amd64_classify_aggregate (struct type *type, enum amd64_reg_class class[2])
|
|
||||||
{
|
|
||||||
- int len = TYPE_LENGTH (type);
|
|
||||||
-
|
|
||||||
/* 1. If the size of an object is larger than two eightbytes, or in
|
|
||||||
C++, is a non-POD structure or union type, or contains
|
|
||||||
unaligned fields, it has class memory. */
|
|
||||||
- if (len > 16 || amd64_non_pod_p (type))
|
|
||||||
+ if (TYPE_LENGTH (type) > 16 || amd64_non_pod_p (type))
|
|
||||||
{
|
|
||||||
class[0] = class[1] = AMD64_MEMORY;
|
|
||||||
return;
|
|
||||||
@@ -471,7 +469,7 @@ amd64_classify_aggregate (struct type *t
|
|
||||||
|
|
||||||
/* All fields in an array have the same type. */
|
|
||||||
amd64_classify (subtype, class);
|
|
||||||
- if (len > 8 && class[1] == AMD64_NO_CLASS)
|
|
||||||
+ if (TYPE_LENGTH (type) > 8 && class[1] == AMD64_NO_CLASS)
|
|
||||||
class[1] = class[0];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
@@ -839,10 +837,9 @@ amd64_push_arguments (struct regcache *r
|
|
||||||
{
|
|
||||||
struct type *type = value_type (stack_args[i]);
|
|
||||||
const gdb_byte *valbuf = value_contents (stack_args[i]);
|
|
||||||
- int len = TYPE_LENGTH (type);
|
|
||||||
CORE_ADDR arg_addr = sp + element * 8;
|
|
||||||
|
|
||||||
- write_memory (arg_addr, valbuf, len);
|
|
||||||
+ write_memory (arg_addr, valbuf, TYPE_LENGTH (type));
|
|
||||||
if (arg_addr_regno[i] >= 0)
|
|
||||||
{
|
|
||||||
/* We also need to store the address of that argument in
|
|
||||||
@@ -853,7 +850,7 @@ amd64_push_arguments (struct regcache *r
|
|
||||||
store_unsigned_integer (buf, 8, byte_order, arg_addr);
|
|
||||||
regcache_cooked_write (regcache, arg_addr_regno[i], buf);
|
|
||||||
}
|
|
||||||
- element += ((len + 7) / 8);
|
|
||||||
+ element += ((TYPE_LENGTH (type) + 7) / 8);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* The psABI says that "For calls that may call functions that use
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/ax-gdb.c
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/ax-gdb.c 2012-07-05 03:03:01.000000000 +0200
|
|
||||||
+++ gdb-7.5.0.20120926/gdb/ax-gdb.c 2012-11-07 22:03:57.626623484 +0100
|
|
||||||
@@ -367,9 +367,9 @@ gen_trace_static_fields (struct gdbarch
|
|
||||||
{
|
|
||||||
case axs_lvalue_memory:
|
|
||||||
{
|
|
||||||
- int length = TYPE_LENGTH (check_typedef (value.type));
|
|
||||||
-
|
|
||||||
- ax_const_l (ax, length);
|
|
||||||
+ /* Initialize the TYPE_LENGTH if it is a typedef. */
|
|
||||||
+ check_typedef (value.type);
|
|
||||||
+ ax_const_l (ax, TYPE_LENGTH (value.type));
|
|
||||||
ax_simple (ax, aop_trace);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
@@ -425,17 +425,18 @@ gen_traced_pop (struct gdbarch *gdbarch,
|
|
||||||
|
|
||||||
case axs_lvalue_memory:
|
|
||||||
{
|
|
||||||
- int length = TYPE_LENGTH (check_typedef (value->type));
|
|
||||||
-
|
|
||||||
if (string_trace)
|
|
||||||
ax_simple (ax, aop_dup);
|
|
||||||
|
|
||||||
+ /* Initialize the TYPE_LENGTH if it is a typedef. */
|
|
||||||
+ check_typedef (value->type);
|
|
||||||
+
|
|
||||||
/* There's no point in trying to use a trace_quick bytecode
|
|
||||||
here, since "trace_quick SIZE pop" is three bytes, whereas
|
|
||||||
"const8 SIZE trace" is also three bytes, does the same
|
|
||||||
thing, and the simplest code which generates that will also
|
|
||||||
work correctly for objects with large sizes. */
|
|
||||||
- ax_const_l (ax, length);
|
|
||||||
+ ax_const_l (ax, TYPE_LENGTH (value->type));
|
|
||||||
ax_simple (ax, aop_trace);
|
|
||||||
|
|
||||||
if (string_trace)
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/bfin-tdep.c
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/bfin-tdep.c 2012-05-16 16:35:03.000000000 +0200
|
|
||||||
+++ gdb-7.5.0.20120926/gdb/bfin-tdep.c 2012-11-07 22:03:57.643623460 +0100
|
|
||||||
@@ -513,9 +513,8 @@ bfin_push_dummy_call (struct gdbarch *gd
|
|
||||||
for (i = nargs - 1; i >= 0; i--)
|
|
||||||
{
|
|
||||||
struct type *value_type = value_enclosing_type (args[i]);
|
|
||||||
- int len = TYPE_LENGTH (value_type);
|
|
||||||
|
|
||||||
- total_len += (len + 3) & ~3;
|
|
||||||
+ total_len += (TYPE_LENGTH (value_type) + 3) & ~3;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* At least twelve bytes of stack space must be allocated for the function's
|
|
||||||
@@ -531,8 +530,7 @@ bfin_push_dummy_call (struct gdbarch *gd
|
|
||||||
{
|
|
||||||
struct type *value_type = value_enclosing_type (args[i]);
|
|
||||||
struct type *arg_type = check_typedef (value_type);
|
|
||||||
- int len = TYPE_LENGTH (value_type);
|
|
||||||
- int container_len = (len + 3) & ~3;
|
|
||||||
+ int container_len = (TYPE_LENGTH (value_type) + 3) & ~3;
|
|
||||||
|
|
||||||
sp -= container_len;
|
|
||||||
write_memory (sp, value_contents_writeable (args[i]), container_len);
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/breakpoint.c
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/breakpoint.c 2012-11-07 22:00:43.000000000 +0100
|
|
||||||
+++ gdb-7.5.0.20120926/gdb/breakpoint.c 2012-11-07 22:03:57.660623434 +0100
|
|
||||||
@@ -1844,11 +1844,10 @@ update_watchpoint (struct watchpoint *b,
|
|
||||||
&& TYPE_CODE (vtype) != TYPE_CODE_ARRAY))
|
|
||||||
{
|
|
||||||
CORE_ADDR addr;
|
|
||||||
- int len, type;
|
|
||||||
+ int type;
|
|
||||||
struct bp_location *loc, **tmp;
|
|
||||||
|
|
||||||
addr = value_address (v);
|
|
||||||
- len = TYPE_LENGTH (value_type (v));
|
|
||||||
type = hw_write;
|
|
||||||
if (b->base.type == bp_read_watchpoint)
|
|
||||||
type = hw_read;
|
|
||||||
@@ -1863,7 +1862,7 @@ update_watchpoint (struct watchpoint *b,
|
|
||||||
|
|
||||||
loc->pspace = frame_pspace;
|
|
||||||
loc->address = addr;
|
|
||||||
- loc->length = len;
|
|
||||||
+ loc->length = TYPE_LENGTH (value_type (v));
|
|
||||||
loc->watchpoint_type = type;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/findcmd.c
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/findcmd.c 2012-07-06 17:51:39.000000000 +0200
|
|
||||||
+++ gdb-7.5.0.20120926/gdb/findcmd.c 2012-11-07 22:03:57.676623411 +0100
|
|
||||||
@@ -169,19 +169,19 @@ parse_find_args (char *args, ULONGEST *m
|
|
||||||
while (*s != '\0')
|
|
||||||
{
|
|
||||||
LONGEST x;
|
|
||||||
- int val_bytes;
|
|
||||||
+ struct type *t;
|
|
||||||
ULONGEST pattern_buf_size_need;
|
|
||||||
|
|
||||||
while (isspace (*s))
|
|
||||||
++s;
|
|
||||||
|
|
||||||
v = parse_to_comma_and_eval (&s);
|
|
||||||
- val_bytes = TYPE_LENGTH (value_type (v));
|
|
||||||
+ t = value_type (v);
|
|
||||||
|
|
||||||
/* Keep it simple and assume size == 'g' when watching for when we
|
|
||||||
need to grow the pattern buf. */
|
|
||||||
pattern_buf_size_need = (pattern_buf_end - pattern_buf
|
|
||||||
- + max (val_bytes, sizeof (int64_t)));
|
|
||||||
+ + max (TYPE_LENGTH (t), sizeof (int64_t)));
|
|
||||||
if (pattern_buf_size_need > pattern_buf_size)
|
|
||||||
{
|
|
||||||
size_t current_offset = pattern_buf_end - pattern_buf;
|
|
||||||
@@ -215,8 +215,8 @@ parse_find_args (char *args, ULONGEST *m
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
- memcpy (pattern_buf_end, value_contents (v), val_bytes);
|
|
||||||
- pattern_buf_end += val_bytes;
|
|
||||||
+ memcpy (pattern_buf_end, value_contents (v), TYPE_LENGTH (t));
|
|
||||||
+ pattern_buf_end += TYPE_LENGTH (t);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (*s == ',')
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/h8300-tdep.c
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/h8300-tdep.c 2012-11-07 22:00:44.000000000 +0100
|
|
||||||
+++ gdb-7.5.0.20120926/gdb/h8300-tdep.c 2012-11-07 22:03:57.679623409 +0100
|
|
||||||
@@ -785,16 +785,15 @@ h8300h_extract_return_value (struct type
|
|
||||||
{
|
|
||||||
struct gdbarch *gdbarch = get_regcache_arch (regcache);
|
|
||||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
|
||||||
- int len = TYPE_LENGTH (type);
|
|
||||||
ULONGEST c;
|
|
||||||
|
|
||||||
- switch (len)
|
|
||||||
+ switch (TYPE_LENGTH (type))
|
|
||||||
{
|
|
||||||
case 1:
|
|
||||||
case 2:
|
|
||||||
case 4:
|
|
||||||
regcache_cooked_read_unsigned (regcache, E_RET0_REGNUM, &c);
|
|
||||||
- store_unsigned_integer (valbuf, len, byte_order, c);
|
|
||||||
+ store_unsigned_integer (valbuf, TYPE_LENGTH (type), byte_order, c);
|
|
||||||
break;
|
|
||||||
case 8: /* long long is now 8 bytes. */
|
|
||||||
if (TYPE_CODE (type) == TYPE_CODE_INT)
|
|
||||||
@@ -852,18 +851,17 @@ h8300_store_return_value (struct type *t
|
|
||||||
{
|
|
||||||
struct gdbarch *gdbarch = get_regcache_arch (regcache);
|
|
||||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
|
||||||
- int len = TYPE_LENGTH (type);
|
|
||||||
ULONGEST val;
|
|
||||||
|
|
||||||
- switch (len)
|
|
||||||
+ switch (TYPE_LENGTH (type))
|
|
||||||
{
|
|
||||||
case 1:
|
|
||||||
case 2: /* short... */
|
|
||||||
- val = extract_unsigned_integer (valbuf, len, byte_order);
|
|
||||||
+ val = extract_unsigned_integer (valbuf, TYPE_LENGTH (type), byte_order);
|
|
||||||
regcache_cooked_write_unsigned (regcache, E_RET0_REGNUM, val);
|
|
||||||
break;
|
|
||||||
case 4: /* long, float */
|
|
||||||
- val = extract_unsigned_integer (valbuf, len, byte_order);
|
|
||||||
+ val = extract_unsigned_integer (valbuf, TYPE_LENGTH (type), byte_order);
|
|
||||||
regcache_cooked_write_unsigned (regcache, E_RET0_REGNUM,
|
|
||||||
(val >> 16) & 0xffff);
|
|
||||||
regcache_cooked_write_unsigned (regcache, E_RET1_REGNUM, val & 0xffff);
|
|
||||||
@@ -882,19 +880,18 @@ h8300h_store_return_value (struct type *
|
|
||||||
{
|
|
||||||
struct gdbarch *gdbarch = get_regcache_arch (regcache);
|
|
||||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
|
||||||
- int len = TYPE_LENGTH (type);
|
|
||||||
ULONGEST val;
|
|
||||||
|
|
||||||
- switch (len)
|
|
||||||
+ switch (TYPE_LENGTH (type))
|
|
||||||
{
|
|
||||||
case 1:
|
|
||||||
case 2:
|
|
||||||
case 4: /* long, float */
|
|
||||||
- val = extract_unsigned_integer (valbuf, len, byte_order);
|
|
||||||
+ val = extract_unsigned_integer (valbuf, TYPE_LENGTH (type), byte_order);
|
|
||||||
regcache_cooked_write_unsigned (regcache, E_RET0_REGNUM, val);
|
|
||||||
break;
|
|
||||||
case 8:
|
|
||||||
- val = extract_unsigned_integer (valbuf, len, byte_order);
|
|
||||||
+ val = extract_unsigned_integer (valbuf, TYPE_LENGTH (type), byte_order);
|
|
||||||
regcache_cooked_write_unsigned (regcache, E_RET0_REGNUM,
|
|
||||||
(val >> 32) & 0xffffffff);
|
|
||||||
regcache_cooked_write_unsigned (regcache, E_RET1_REGNUM,
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/i386-darwin-tdep.c
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/i386-darwin-tdep.c 2012-04-02 15:15:48.000000000 +0200
|
|
||||||
+++ gdb-7.5.0.20120926/gdb/i386-darwin-tdep.c 2012-11-07 22:03:57.680623407 +0100
|
|
||||||
@@ -196,13 +196,12 @@ i386_darwin_push_dummy_call (struct gdba
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
- int len = TYPE_LENGTH (arg_type);
|
|
||||||
- int align = i386_darwin_arg_type_alignment (arg_type);
|
|
||||||
-
|
|
||||||
- args_space = align_up (args_space, align);
|
|
||||||
+ args_space = align_up (args_space,
|
|
||||||
+ i386_darwin_arg_type_alignment (arg_type));
|
|
||||||
if (write_pass)
|
|
||||||
write_memory (sp + args_space,
|
|
||||||
- value_contents_all (args[i]), len);
|
|
||||||
+ value_contents_all (args[i]),
|
|
||||||
+ TYPE_LENGTH (arg_type));
|
|
||||||
|
|
||||||
/* The System V ABI says that:
|
|
||||||
|
|
||||||
@@ -211,7 +210,7 @@ i386_darwin_push_dummy_call (struct gdba
|
|
||||||
depending on the size of the argument."
|
|
||||||
|
|
||||||
This makes sure the stack stays word-aligned. */
|
|
||||||
- args_space += align_up (len, 4);
|
|
||||||
+ args_space += align_up (TYPE_LENGTH (arg_type), 4);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/infcall.c
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/infcall.c 2012-07-31 09:34:39.000000000 +0200
|
|
||||||
+++ gdb-7.5.0.20120926/gdb/infcall.c 2012-11-07 22:03:57.694623385 +0100
|
|
||||||
@@ -709,13 +709,11 @@ call_function_by_hand (struct value *fun
|
|
||||||
|
|
||||||
if (struct_return || hidden_first_param_p)
|
|
||||||
{
|
|
||||||
- int len = TYPE_LENGTH (values_type);
|
|
||||||
-
|
|
||||||
if (gdbarch_inner_than (gdbarch, 1, 2))
|
|
||||||
{
|
|
||||||
/* Stack grows downward. Align STRUCT_ADDR and SP after
|
|
||||||
making space for the return value. */
|
|
||||||
- sp -= len;
|
|
||||||
+ sp -= TYPE_LENGTH (values_type);
|
|
||||||
if (gdbarch_frame_align_p (gdbarch))
|
|
||||||
sp = gdbarch_frame_align (gdbarch, sp);
|
|
||||||
struct_addr = sp;
|
|
||||||
@@ -727,7 +725,7 @@ call_function_by_hand (struct value *fun
|
|
||||||
if (gdbarch_frame_align_p (gdbarch))
|
|
||||||
sp = gdbarch_frame_align (gdbarch, sp);
|
|
||||||
struct_addr = sp;
|
|
||||||
- sp += len;
|
|
||||||
+ sp += TYPE_LENGTH (values_type);
|
|
||||||
if (gdbarch_frame_align_p (gdbarch))
|
|
||||||
sp = gdbarch_frame_align (gdbarch, sp);
|
|
||||||
}
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/lm32-tdep.c
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/lm32-tdep.c 2012-05-18 23:02:48.000000000 +0200
|
|
||||||
+++ gdb-7.5.0.20120926/gdb/lm32-tdep.c 2012-11-07 22:03:57.695623384 +0100
|
|
||||||
@@ -261,7 +261,6 @@ lm32_push_dummy_call (struct gdbarch *gd
|
|
||||||
struct value *arg = args[i];
|
|
||||||
struct type *arg_type = check_typedef (value_type (arg));
|
|
||||||
gdb_byte *contents;
|
|
||||||
- int len;
|
|
||||||
ULONGEST val;
|
|
||||||
|
|
||||||
/* Promote small integer types to int. */
|
|
||||||
@@ -283,8 +282,8 @@ lm32_push_dummy_call (struct gdbarch *gd
|
|
||||||
/* FIXME: Handle structures. */
|
|
||||||
|
|
||||||
contents = (gdb_byte *) value_contents (arg);
|
|
||||||
- len = TYPE_LENGTH (arg_type);
|
|
||||||
- val = extract_unsigned_integer (contents, len, byte_order);
|
|
||||||
+ val = extract_unsigned_integer (contents, TYPE_LENGTH (arg_type),
|
|
||||||
+ byte_order);
|
|
||||||
|
|
||||||
/* First num_arg_regs parameters are passed by registers,
|
|
||||||
and the rest are passed on the stack. */
|
|
||||||
@@ -292,7 +291,7 @@ lm32_push_dummy_call (struct gdbarch *gd
|
|
||||||
regcache_cooked_write_unsigned (regcache, first_arg_reg + i, val);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
- write_memory (sp, (void *) &val, len);
|
|
||||||
+ write_memory (sp, (void *) &val, TYPE_LENGTH (arg_type));
|
|
||||||
sp -= 4;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/m68hc11-tdep.c
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/m68hc11-tdep.c 2012-05-16 16:35:06.000000000 +0200
|
|
||||||
+++ gdb-7.5.0.20120926/gdb/m68hc11-tdep.c 2012-11-07 22:03:57.724623347 +0100
|
|
||||||
@@ -1174,7 +1174,6 @@ m68hc11_push_dummy_call (struct gdbarch
|
|
||||||
int first_stack_argnum;
|
|
||||||
struct type *type;
|
|
||||||
char *val;
|
|
||||||
- int len;
|
|
||||||
char buf[2];
|
|
||||||
|
|
||||||
first_stack_argnum = 0;
|
|
||||||
@@ -1185,19 +1184,18 @@ m68hc11_push_dummy_call (struct gdbarch
|
|
||||||
else if (nargs > 0)
|
|
||||||
{
|
|
||||||
type = value_type (args[0]);
|
|
||||||
- len = TYPE_LENGTH (type);
|
|
||||||
|
|
||||||
/* First argument is passed in D and X registers. */
|
|
||||||
- if (len <= 4)
|
|
||||||
+ if (TYPE_LENGTH (type) <= 4)
|
|
||||||
{
|
|
||||||
ULONGEST v;
|
|
||||||
|
|
||||||
v = extract_unsigned_integer (value_contents (args[0]),
|
|
||||||
- len, byte_order);
|
|
||||||
+ TYPE_LENGTH (type), byte_order);
|
|
||||||
first_stack_argnum = 1;
|
|
||||||
|
|
||||||
regcache_cooked_write_unsigned (regcache, HARD_D_REGNUM, v);
|
|
||||||
- if (len > 2)
|
|
||||||
+ if (TYPE_LENGTH (type) > 2)
|
|
||||||
{
|
|
||||||
v >>= 16;
|
|
||||||
regcache_cooked_write_unsigned (regcache, HARD_X_REGNUM, v);
|
|
||||||
@@ -1208,9 +1206,8 @@ m68hc11_push_dummy_call (struct gdbarch
|
|
||||||
for (argnum = nargs - 1; argnum >= first_stack_argnum; argnum--)
|
|
||||||
{
|
|
||||||
type = value_type (args[argnum]);
|
|
||||||
- len = TYPE_LENGTH (type);
|
|
||||||
|
|
||||||
- if (len & 1)
|
|
||||||
+ if (TYPE_LENGTH (type) & 1)
|
|
||||||
{
|
|
||||||
static char zero = 0;
|
|
||||||
|
|
||||||
@@ -1218,8 +1215,8 @@ m68hc11_push_dummy_call (struct gdbarch
|
|
||||||
write_memory (sp, &zero, 1);
|
|
||||||
}
|
|
||||||
val = (char*) value_contents (args[argnum]);
|
|
||||||
- sp -= len;
|
|
||||||
- write_memory (sp, val, len);
|
|
||||||
+ sp -= TYPE_LENGTH (type);
|
|
||||||
+ write_memory (sp, val, TYPE_LENGTH (type));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Store return address. */
|
|
||||||
@@ -1291,11 +1288,10 @@ static void
|
|
||||||
m68hc11_extract_return_value (struct type *type, struct regcache *regcache,
|
|
||||||
void *valbuf)
|
|
||||||
{
|
|
||||||
- int len = TYPE_LENGTH (type);
|
|
||||||
char buf[M68HC11_REG_SIZE];
|
|
||||||
|
|
||||||
regcache_raw_read (regcache, HARD_D_REGNUM, buf);
|
|
||||||
- switch (len)
|
|
||||||
+ switch (TYPE_LENGTH (type))
|
|
||||||
{
|
|
||||||
case 1:
|
|
||||||
memcpy (valbuf, buf + 1, 1);
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/mep-tdep.c
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/mep-tdep.c 2012-05-16 16:35:06.000000000 +0200
|
|
||||||
+++ gdb-7.5.0.20120926/gdb/mep-tdep.c 2012-11-07 22:03:57.727623334 +0100
|
|
||||||
@@ -2337,11 +2337,10 @@ mep_push_dummy_call (struct gdbarch *gdb
|
|
||||||
|
|
||||||
for (i = 0; i < argc; i++)
|
|
||||||
{
|
|
||||||
- unsigned arg_size = TYPE_LENGTH (value_type (argv[i]));
|
|
||||||
ULONGEST value;
|
|
||||||
|
|
||||||
/* Arguments that fit in a GPR get expanded to fill the GPR. */
|
|
||||||
- if (arg_size <= MEP_GPR_SIZE)
|
|
||||||
+ if (TYPE_LENGTH (value_type (argv[i])) <= MEP_GPR_SIZE)
|
|
||||||
value = extract_unsigned_integer (value_contents (argv[i]),
|
|
||||||
TYPE_LENGTH (value_type (argv[i])),
|
|
||||||
byte_order);
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/printcmd.c
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/printcmd.c 2012-11-07 22:00:44.000000000 +0100
|
|
||||||
+++ gdb-7.5.0.20120926/gdb/printcmd.c 2012-11-07 22:03:57.730623334 +0100
|
|
||||||
@@ -347,13 +347,12 @@ float_type_from_length (struct type *typ
|
|
||||||
{
|
|
||||||
struct gdbarch *gdbarch = get_type_arch (type);
|
|
||||||
const struct builtin_type *builtin = builtin_type (gdbarch);
|
|
||||||
- unsigned int len = TYPE_LENGTH (type);
|
|
||||||
|
|
||||||
- if (len == TYPE_LENGTH (builtin->builtin_float))
|
|
||||||
+ if (TYPE_LENGTH (type) == TYPE_LENGTH (builtin->builtin_float))
|
|
||||||
type = builtin->builtin_float;
|
|
||||||
- else if (len == TYPE_LENGTH (builtin->builtin_double))
|
|
||||||
+ else if (TYPE_LENGTH (type) == TYPE_LENGTH (builtin->builtin_double))
|
|
||||||
type = builtin->builtin_double;
|
|
||||||
- else if (len == TYPE_LENGTH (builtin->builtin_long_double))
|
|
||||||
+ else if (TYPE_LENGTH (type) == TYPE_LENGTH (builtin->builtin_long_double))
|
|
||||||
type = builtin->builtin_long_double;
|
|
||||||
|
|
||||||
return type;
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/s390-tdep.c
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/s390-tdep.c 2012-11-07 22:02:30.000000000 +0100
|
|
||||||
+++ gdb-7.5.0.20120926/gdb/s390-tdep.c 2012-11-07 22:03:57.733623329 +0100
|
|
||||||
@@ -376,9 +376,11 @@ s390_value_from_register (struct type *t
|
|
||||||
struct frame_info *frame)
|
|
||||||
{
|
|
||||||
struct value *value = default_value_from_register (type, regnum, frame);
|
|
||||||
- int len = TYPE_LENGTH (check_typedef (type));
|
|
||||||
|
|
||||||
- if (regnum >= S390_F0_REGNUM && regnum <= S390_F15_REGNUM && len < 8)
|
|
||||||
+ check_typedef (type);
|
|
||||||
+
|
|
||||||
+ if (regnum >= S390_F0_REGNUM && regnum <= S390_F15_REGNUM
|
|
||||||
+ && TYPE_LENGTH (type) < 8)
|
|
||||||
set_value_offset (value, 0);
|
|
||||||
|
|
||||||
return value;
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/stack.c
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/stack.c 2012-11-07 22:00:43.000000000 +0100
|
|
||||||
+++ gdb-7.5.0.20120926/gdb/stack.c 2012-11-07 22:03:57.737623322 +0100
|
|
||||||
@@ -354,14 +354,15 @@ read_frame_arg (struct symbol *sym, stru
|
|
||||||
|
|
||||||
if (val && entryval && !ui_out_is_mi_like_p (current_uiout))
|
|
||||||
{
|
|
||||||
- unsigned len = TYPE_LENGTH (value_type (val));
|
|
||||||
+ struct type *type = value_type (val);
|
|
||||||
|
|
||||||
if (!value_optimized_out (val) && value_lazy (val))
|
|
||||||
value_fetch_lazy (val);
|
|
||||||
if (!value_optimized_out (val) && value_lazy (entryval))
|
|
||||||
value_fetch_lazy (entryval);
|
|
||||||
if (!value_optimized_out (val)
|
|
||||||
- && value_available_contents_eq (val, 0, entryval, 0, len))
|
|
||||||
+ && value_available_contents_eq (val, 0, entryval, 0,
|
|
||||||
+ TYPE_LENGTH (type)))
|
|
||||||
{
|
|
||||||
/* Initialize it just to avoid a GCC false warning. */
|
|
||||||
struct value *val_deref = NULL, *entryval_deref;
|
|
||||||
@@ -373,12 +374,12 @@ read_frame_arg (struct symbol *sym, stru
|
|
||||||
|
|
||||||
TRY_CATCH (except, RETURN_MASK_ERROR)
|
|
||||||
{
|
|
||||||
- unsigned len_deref;
|
|
||||||
+ struct type *type_deref;
|
|
||||||
|
|
||||||
val_deref = coerce_ref (val);
|
|
||||||
if (value_lazy (val_deref))
|
|
||||||
value_fetch_lazy (val_deref);
|
|
||||||
- len_deref = TYPE_LENGTH (value_type (val_deref));
|
|
||||||
+ type_deref = value_type (val_deref);
|
|
||||||
|
|
||||||
entryval_deref = coerce_ref (entryval);
|
|
||||||
if (value_lazy (entryval_deref))
|
|
||||||
@@ -389,7 +390,7 @@ read_frame_arg (struct symbol *sym, stru
|
|
||||||
if (val != val_deref
|
|
||||||
&& value_available_contents_eq (val_deref, 0,
|
|
||||||
entryval_deref, 0,
|
|
||||||
- len_deref))
|
|
||||||
+ TYPE_LENGTH (type_deref)))
|
|
||||||
val_equal = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/tracepoint.c
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/tracepoint.c 2012-06-30 00:46:46.000000000 +0200
|
|
||||||
+++ gdb-7.5.0.20120926/gdb/tracepoint.c 2012-11-07 22:03:57.741623318 +0100
|
|
||||||
@@ -1450,7 +1450,7 @@ encode_actions_1 (struct command_line *a
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
- unsigned long addr, len;
|
|
||||||
+ unsigned long addr;
|
|
||||||
struct cleanup *old_chain = NULL;
|
|
||||||
struct cleanup *old_chain1 = NULL;
|
|
||||||
|
|
||||||
@@ -1480,8 +1480,10 @@ encode_actions_1 (struct command_line *a
|
|
||||||
/* Safe because we know it's a simple expression. */
|
|
||||||
tempval = evaluate_expression (exp);
|
|
||||||
addr = value_address (tempval);
|
|
||||||
- len = TYPE_LENGTH (check_typedef (exp->elts[1].type));
|
|
||||||
- add_memrange (collect, memrange_absolute, addr, len);
|
|
||||||
+ /* Initialize the TYPE_LENGTH if it is a typedef. */
|
|
||||||
+ check_typedef (exp->elts[1].type);
|
|
||||||
+ add_memrange (collect, memrange_absolute, addr,
|
|
||||||
+ TYPE_LENGTH (exp->elts[1].type));
|
|
||||||
break;
|
|
||||||
|
|
||||||
case OP_VAR_VALUE:
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/valops.c
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/valops.c 2012-11-07 22:00:44.000000000 +0100
|
|
||||||
+++ gdb-7.5.0.20120926/gdb/valops.c 2012-11-07 22:06:35.899393539 +0100
|
|
||||||
@@ -1055,7 +1055,6 @@ value_fetch_lazy (struct value *val)
|
|
||||||
struct value *parent = value_parent (val);
|
|
||||||
LONGEST offset = value_offset (val);
|
|
||||||
LONGEST num;
|
|
||||||
- int length = TYPE_LENGTH (type);
|
|
||||||
|
|
||||||
if (!value_bits_valid (val,
|
|
||||||
TARGET_CHAR_BIT * offset + value_bitpos (val),
|
|
||||||
@@ -1069,9 +1068,9 @@ value_fetch_lazy (struct value *val)
|
|
||||||
value_bitsize (val), parent, &num))
|
|
||||||
mark_value_bytes_unavailable (val,
|
|
||||||
value_embedded_offset (val),
|
|
||||||
- length);
|
|
||||||
+ TYPE_LENGTH (type));
|
|
||||||
else
|
|
||||||
- store_signed_integer (value_contents_raw (val), length,
|
|
||||||
+ store_signed_integer (value_contents_raw (val), TYPE_LENGTH (type),
|
|
||||||
byte_order, num);
|
|
||||||
}
|
|
||||||
else if (VALUE_LVAL (val) == lval_memory)
|
|
||||||
@@ -1080,16 +1079,16 @@ value_fetch_lazy (struct value *val)
|
|
||||||
|
|
||||||
if (object_address_get_data (value_type (val), &addr))
|
|
||||||
{
|
|
||||||
- struct type *type = value_enclosing_type (val);
|
|
||||||
- int length = TYPE_LENGTH (check_typedef (type));
|
|
||||||
+ struct type *type = check_typedef (value_enclosing_type (val));
|
|
||||||
|
|
||||||
- if (length)
|
|
||||||
+ if (TYPE_LENGTH (type))
|
|
||||||
{
|
|
||||||
/* Delay it after object_address_get_data above. */
|
|
||||||
allocate_value_contents (val);
|
|
||||||
addr += value_offset (val);
|
|
||||||
read_value_memory (val, 0, value_stack (val),
|
|
||||||
- addr, value_contents_all_raw (val), length);
|
|
||||||
+ addr, value_contents_all_raw (val),
|
|
||||||
+ TYPE_LENGTH (type));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* Just to be sure it has been called. */
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/value.c
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/value.c 2012-11-07 22:00:43.000000000 +0100
|
|
||||||
+++ gdb-7.5.0.20120926/gdb/value.c 2012-11-07 22:03:57.751623303 +0100
|
|
||||||
@@ -1034,15 +1034,14 @@ value_contents_equal (struct value *val1
|
|
||||||
{
|
|
||||||
struct type *type1;
|
|
||||||
struct type *type2;
|
|
||||||
- int len;
|
|
||||||
|
|
||||||
type1 = check_typedef (value_type (val1));
|
|
||||||
type2 = check_typedef (value_type (val2));
|
|
||||||
- len = TYPE_LENGTH (type1);
|
|
||||||
- if (len != TYPE_LENGTH (type2))
|
|
||||||
+ if (TYPE_LENGTH (type1) != TYPE_LENGTH (type2))
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
- return (memcmp (value_contents (val1), value_contents (val2), len) == 0);
|
|
||||||
+ return (memcmp (value_contents (val1), value_contents (val2),
|
|
||||||
+ TYPE_LENGTH (type1)) == 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
@ -1,45 +0,0 @@
|
|||||||
http://sourceware.org/ml/gdb-cvs/2012-09/msg00145.html
|
|
||||||
|
|
||||||
### src/gdb/ChangeLog 2012/09/25 12:48:52 1.14697
|
|
||||||
### src/gdb/ChangeLog 2012/09/26 02:06:51 1.14698
|
|
||||||
## -1,3 +1,8 @@
|
|
||||||
+2012-09-26 Siddhesh Poyarekar <siddhesh@redhat.com>
|
|
||||||
+
|
|
||||||
+ * breakpoint.c (invalidate_bp_value_on_memory_change): Expand
|
|
||||||
+ parameter LEN to ssize_t.
|
|
||||||
+
|
|
||||||
2012-09-25 Siddhesh Poyarekar <siddhesh@redhat.com>
|
|
||||||
|
|
||||||
* ada-valprint.c (ada_val_print_1): Eliminate single-use
|
|
||||||
--- src/gdb/breakpoint.c 2012/09/25 12:48:52 1.705
|
|
||||||
+++ src/gdb/breakpoint.c 2012/09/26 02:06:54 1.706
|
|
||||||
@@ -14718,7 +14718,7 @@
|
|
||||||
GDB itself. */
|
|
||||||
|
|
||||||
static void
|
|
||||||
-invalidate_bp_value_on_memory_change (CORE_ADDR addr, int len,
|
|
||||||
+invalidate_bp_value_on_memory_change (CORE_ADDR addr, ssize_t len,
|
|
||||||
const bfd_byte *data)
|
|
||||||
{
|
|
||||||
struct breakpoint *bp;
|
|
||||||
### src/gdb/doc/ChangeLog 2012/09/21 01:46:42 1.1370
|
|
||||||
### src/gdb/doc/ChangeLog 2012/09/26 02:06:55 1.1371
|
|
||||||
## -1,3 +1,7 @@
|
|
||||||
+2012-09-26 Siddhesh Poyarekar <siddhesh@redhat.com>
|
|
||||||
+
|
|
||||||
+ * observer.texi (memory_changed): Expand parameter LEN to ssize_t.
|
|
||||||
+
|
|
||||||
2012-09-21 Yao Qi <yao@codesourcery.com>
|
|
||||||
Pedro Alves <palves@redhat.com>
|
|
||||||
|
|
||||||
--- src/gdb/doc/observer.texi 2012/09/21 01:46:43 1.40
|
|
||||||
+++ src/gdb/doc/observer.texi 2012/09/26 02:06:55 1.41
|
|
||||||
@@ -230,7 +230,7 @@
|
|
||||||
This method is called immediately before freeing @var{inf}.
|
|
||||||
@end deftypefun
|
|
||||||
|
|
||||||
-@deftypefun void memory_changed (CORE_ADDR @var{addr}, int @var{len}, const bfd_byte *@var{data})
|
|
||||||
+@deftypefun void memory_changed (CORE_ADDR @var{addr}, ssize_t @var{len}, const bfd_byte *@var{data})
|
|
||||||
Bytes from @var{data} to @var{data} + @var{len} have been written
|
|
||||||
to the current inferior at @var{addr}.
|
|
||||||
@end deftypefun
|
|
@ -1,260 +0,0 @@
|
|||||||
http://sourceware.org/ml/gdb-cvs/2012-09/msg00147.html
|
|
||||||
|
|
||||||
### src/gdb/ChangeLog 2012/09/26 02:06:51 1.14698
|
|
||||||
### src/gdb/ChangeLog 2012/09/26 07:52:44 1.14699
|
|
||||||
## -1,5 +1,19 @@
|
|
||||||
2012-09-26 Siddhesh Poyarekar <siddhesh@redhat.com>
|
|
||||||
|
|
||||||
+ * amd64-tdep.c (amd64_return_value): Use TYPE_LENGTH directly.
|
|
||||||
+ * bfin-tdep.c (bfin_extract_return_value): Likewise.
|
|
||||||
+ (bfin_store_return_value): Likewise.
|
|
||||||
+ * cris-tdep.c (cris_store_return_value): Likewise.
|
|
||||||
+ (cris_extract_return_value): Likewise.
|
|
||||||
+ * h8300-tdep.c (h8300_extract_return_value): Likewise.
|
|
||||||
+ * hppa-tdep.c (hppa64_return_value): Likewise.
|
|
||||||
+ * lm32-tdep.c (lm32_store_return_value): Likewise.
|
|
||||||
+ * microblaze-tdep.c (microblaze_store_return_value): Likewise.
|
|
||||||
+ * spu-tdep.c (spu_value_from_register): Likewise.
|
|
||||||
+ * vax-tdep.c (vax_return_value): Likewise.
|
|
||||||
+
|
|
||||||
+2012-09-26 Siddhesh Poyarekar <siddhesh@redhat.com>
|
|
||||||
+
|
|
||||||
* breakpoint.c (invalidate_bp_value_on_memory_change): Expand
|
|
||||||
parameter LEN to ssize_t.
|
|
||||||
|
|
||||||
--- src/gdb/amd64-tdep.c 2012/09/25 12:48:52 1.110
|
|
||||||
+++ src/gdb/amd64-tdep.c 2012/09/26 07:52:47 1.111
|
|
||||||
@@ -637,7 +637,7 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
gdb_assert (class[1] != AMD64_MEMORY);
|
|
||||||
- gdb_assert (len <= 16);
|
|
||||||
+ gdb_assert (TYPE_LENGTH (type) <= 16);
|
|
||||||
|
|
||||||
for (i = 0; len > 0; i++, len -= 8)
|
|
||||||
{
|
|
||||||
--- src/gdb/bfin-tdep.c 2012/09/25 12:48:52 1.11
|
|
||||||
+++ src/gdb/bfin-tdep.c 2012/09/26 07:52:47 1.12
|
|
||||||
@@ -615,7 +615,7 @@
|
|
||||||
ULONGEST tmp;
|
|
||||||
int regno = BFIN_R0_REGNUM;
|
|
||||||
|
|
||||||
- gdb_assert (len <= 8);
|
|
||||||
+ gdb_assert (TYPE_LENGTH (type) <= 8);
|
|
||||||
|
|
||||||
while (len > 0)
|
|
||||||
{
|
|
||||||
@@ -643,7 +643,7 @@
|
|
||||||
int len = TYPE_LENGTH (type);
|
|
||||||
int regno = BFIN_R0_REGNUM;
|
|
||||||
|
|
||||||
- gdb_assert (len <= 8);
|
|
||||||
+ gdb_assert (TYPE_LENGTH (type) <= 8);
|
|
||||||
|
|
||||||
while (len > 0)
|
|
||||||
{
|
|
||||||
--- src/gdb/cris-tdep.c 2012/05/18 21:02:47 1.185
|
|
||||||
+++ src/gdb/cris-tdep.c 2012/09/26 07:52:47 1.186
|
|
||||||
@@ -1662,20 +1662,20 @@
|
|
||||||
struct gdbarch *gdbarch = get_regcache_arch (regcache);
|
|
||||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
|
||||||
ULONGEST val;
|
|
||||||
- int len = TYPE_LENGTH (type);
|
|
||||||
|
|
||||||
- if (len <= 4)
|
|
||||||
+ if (TYPE_LENGTH (type) <= 4)
|
|
||||||
{
|
|
||||||
/* Put the return value in R10. */
|
|
||||||
- val = extract_unsigned_integer (valbuf, len, byte_order);
|
|
||||||
+ val = extract_unsigned_integer (valbuf, TYPE_LENGTH (type), byte_order);
|
|
||||||
regcache_cooked_write_unsigned (regcache, ARG1_REGNUM, val);
|
|
||||||
}
|
|
||||||
- else if (len <= 8)
|
|
||||||
+ else if (TYPE_LENGTH (type) <= 8)
|
|
||||||
{
|
|
||||||
/* Put the return value in R10 and R11. */
|
|
||||||
val = extract_unsigned_integer (valbuf, 4, byte_order);
|
|
||||||
regcache_cooked_write_unsigned (regcache, ARG1_REGNUM, val);
|
|
||||||
- val = extract_unsigned_integer ((char *)valbuf + 4, len - 4, byte_order);
|
|
||||||
+ val = extract_unsigned_integer ((char *)valbuf + 4,
|
|
||||||
+ TYPE_LENGTH (type) - 4, byte_order);
|
|
||||||
regcache_cooked_write_unsigned (regcache, ARG2_REGNUM, val);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
@@ -1833,21 +1833,21 @@
|
|
||||||
struct gdbarch *gdbarch = get_regcache_arch (regcache);
|
|
||||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
|
||||||
ULONGEST val;
|
|
||||||
- int len = TYPE_LENGTH (type);
|
|
||||||
|
|
||||||
- if (len <= 4)
|
|
||||||
+ if (TYPE_LENGTH (type) <= 4)
|
|
||||||
{
|
|
||||||
/* Get the return value from R10. */
|
|
||||||
regcache_cooked_read_unsigned (regcache, ARG1_REGNUM, &val);
|
|
||||||
- store_unsigned_integer (valbuf, len, byte_order, val);
|
|
||||||
+ store_unsigned_integer (valbuf, TYPE_LENGTH (type), byte_order, val);
|
|
||||||
}
|
|
||||||
- else if (len <= 8)
|
|
||||||
+ else if (TYPE_LENGTH (type) <= 8)
|
|
||||||
{
|
|
||||||
/* Get the return value from R10 and R11. */
|
|
||||||
regcache_cooked_read_unsigned (regcache, ARG1_REGNUM, &val);
|
|
||||||
store_unsigned_integer (valbuf, 4, byte_order, val);
|
|
||||||
regcache_cooked_read_unsigned (regcache, ARG2_REGNUM, &val);
|
|
||||||
- store_unsigned_integer ((char *)valbuf + 4, len - 4, byte_order, val);
|
|
||||||
+ store_unsigned_integer ((char *)valbuf + 4, TYPE_LENGTH (type) - 4,
|
|
||||||
+ byte_order, val);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
error (_("cris_extract_return_value: type length too large"));
|
|
||||||
--- src/gdb/h8300-tdep.c 2012/09/25 12:48:53 1.136
|
|
||||||
+++ src/gdb/h8300-tdep.c 2012/09/26 07:52:48 1.137
|
|
||||||
@@ -751,12 +751,12 @@
|
|
||||||
int len = TYPE_LENGTH (type);
|
|
||||||
ULONGEST c, addr;
|
|
||||||
|
|
||||||
- switch (len)
|
|
||||||
+ switch (TYPE_LENGTH (type))
|
|
||||||
{
|
|
||||||
case 1:
|
|
||||||
case 2:
|
|
||||||
regcache_cooked_read_unsigned (regcache, E_RET0_REGNUM, &c);
|
|
||||||
- store_unsigned_integer (valbuf, len, byte_order, c);
|
|
||||||
+ store_unsigned_integer (valbuf, TYPE_LENGTH (type), byte_order, c);
|
|
||||||
break;
|
|
||||||
case 4: /* Needs two registers on plain H8/300 */
|
|
||||||
regcache_cooked_read_unsigned (regcache, E_RET0_REGNUM, &c);
|
|
||||||
@@ -768,8 +768,9 @@
|
|
||||||
if (TYPE_CODE (type) == TYPE_CODE_INT)
|
|
||||||
{
|
|
||||||
regcache_cooked_read_unsigned (regcache, E_RET0_REGNUM, &addr);
|
|
||||||
- c = read_memory_unsigned_integer ((CORE_ADDR) addr, len, byte_order);
|
|
||||||
- store_unsigned_integer (valbuf, len, byte_order, c);
|
|
||||||
+ c = read_memory_unsigned_integer ((CORE_ADDR) addr,
|
|
||||||
+ TYPE_LENGTH (type), byte_order);
|
|
||||||
+ store_unsigned_integer (valbuf, TYPE_LENGTH (type), byte_order, c);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
--- src/gdb/hppa-tdep.c 2012/05/18 21:02:48 1.281
|
|
||||||
+++ src/gdb/hppa-tdep.c 2012/09/26 07:52:48 1.282
|
|
||||||
@@ -1160,7 +1160,7 @@
|
|
||||||
int len = TYPE_LENGTH (type);
|
|
||||||
int regnum, offset;
|
|
||||||
|
|
||||||
- if (len > 16)
|
|
||||||
+ if (TYPE_LENGTH (type) > 16)
|
|
||||||
{
|
|
||||||
/* All return values larget than 128 bits must be aggregate
|
|
||||||
return values. */
|
|
||||||
--- src/gdb/lm32-tdep.c 2012/09/25 12:48:53 1.13
|
|
||||||
+++ src/gdb/lm32-tdep.c 2012/09/26 07:52:48 1.14
|
|
||||||
@@ -349,18 +349,18 @@
|
|
||||||
struct gdbarch *gdbarch = get_regcache_arch (regcache);
|
|
||||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
|
||||||
ULONGEST val;
|
|
||||||
- int len = TYPE_LENGTH (type);
|
|
||||||
|
|
||||||
- if (len <= 4)
|
|
||||||
+ if (TYPE_LENGTH (type) <= 4)
|
|
||||||
{
|
|
||||||
- val = extract_unsigned_integer (valbuf, len, byte_order);
|
|
||||||
+ val = extract_unsigned_integer (valbuf, TYPE_LENGTH (type), byte_order);
|
|
||||||
regcache_cooked_write_unsigned (regcache, SIM_LM32_R1_REGNUM, val);
|
|
||||||
}
|
|
||||||
- else if (len <= 8)
|
|
||||||
+ else if (TYPE_LENGTH (type) <= 8)
|
|
||||||
{
|
|
||||||
val = extract_unsigned_integer (valbuf, 4, byte_order);
|
|
||||||
regcache_cooked_write_unsigned (regcache, SIM_LM32_R1_REGNUM, val);
|
|
||||||
- val = extract_unsigned_integer (valbuf + 4, len - 4, byte_order);
|
|
||||||
+ val = extract_unsigned_integer (valbuf + 4, TYPE_LENGTH (type) - 4,
|
|
||||||
+ byte_order);
|
|
||||||
regcache_cooked_write_unsigned (regcache, SIM_LM32_R2_REGNUM, val);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
--- src/gdb/microblaze-tdep.c 2012/08/02 09:36:39 1.13
|
|
||||||
+++ src/gdb/microblaze-tdep.c 2012/09/26 07:52:48 1.14
|
|
||||||
@@ -590,22 +590,21 @@
|
|
||||||
microblaze_store_return_value (struct type *type, struct regcache *regcache,
|
|
||||||
const gdb_byte *valbuf)
|
|
||||||
{
|
|
||||||
- int len = TYPE_LENGTH (type);
|
|
||||||
gdb_byte buf[8];
|
|
||||||
|
|
||||||
memset (buf, 0, sizeof(buf));
|
|
||||||
|
|
||||||
/* Integral and pointer return values. */
|
|
||||||
|
|
||||||
- if (len > 4)
|
|
||||||
+ if (TYPE_LENGTH (type) > 4)
|
|
||||||
{
|
|
||||||
- gdb_assert (len == 8);
|
|
||||||
+ gdb_assert (TYPE_LENGTH (type) == 8);
|
|
||||||
memcpy (buf, valbuf, 8);
|
|
||||||
regcache_cooked_write (regcache, MICROBLAZE_RETVAL_REGNUM+1, buf + 4);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
/* ??? Do we need to do any sign-extension here? */
|
|
||||||
- memcpy (buf + 4 - len, valbuf, len);
|
|
||||||
+ memcpy (buf + 4 - TYPE_LENGTH (type), valbuf, TYPE_LENGTH (type));
|
|
||||||
|
|
||||||
regcache_cooked_write (regcache, MICROBLAZE_RETVAL_REGNUM, buf);
|
|
||||||
}
|
|
||||||
--- src/gdb/spu-tdep.c 2012/09/17 08:52:18 1.82
|
|
||||||
+++ src/gdb/spu-tdep.c 2012/09/26 07:52:48 1.83
|
|
||||||
@@ -316,11 +316,10 @@
|
|
||||||
struct frame_info *frame)
|
|
||||||
{
|
|
||||||
struct value *value = default_value_from_register (type, regnum, frame);
|
|
||||||
- int len = TYPE_LENGTH (type);
|
|
||||||
|
|
||||||
- if (regnum < SPU_NUM_GPRS && len < 16)
|
|
||||||
+ if (regnum < SPU_NUM_GPRS && TYPE_LENGTH (type) < 16)
|
|
||||||
{
|
|
||||||
- int preferred_slot = len < 4 ? 4 - len : 0;
|
|
||||||
+ int preferred_slot = TYPE_LENGTH (type) < 4 ? 4 - TYPE_LENGTH (type) : 0;
|
|
||||||
set_value_offset (value, preferred_slot);
|
|
||||||
}
|
|
||||||
|
|
||||||
--- src/gdb/vax-tdep.c 2012/05/16 14:35:08 1.112
|
|
||||||
+++ src/gdb/vax-tdep.c 2012/09/26 07:52:48 1.113
|
|
||||||
@@ -208,7 +208,6 @@
|
|
||||||
struct type *type, struct regcache *regcache,
|
|
||||||
gdb_byte *readbuf, const gdb_byte *writebuf)
|
|
||||||
{
|
|
||||||
- int len = TYPE_LENGTH (type);
|
|
||||||
gdb_byte buf[8];
|
|
||||||
|
|
||||||
if (TYPE_CODE (type) == TYPE_CODE_STRUCT
|
|
||||||
@@ -224,7 +223,7 @@
|
|
||||||
ULONGEST addr;
|
|
||||||
|
|
||||||
regcache_raw_read_unsigned (regcache, VAX_R0_REGNUM, &addr);
|
|
||||||
- read_memory (addr, readbuf, len);
|
|
||||||
+ read_memory (addr, readbuf, TYPE_LENGTH (type));
|
|
||||||
}
|
|
||||||
|
|
||||||
return RETURN_VALUE_ABI_RETURNS_ADDRESS;
|
|
||||||
@@ -234,16 +233,16 @@
|
|
||||||
{
|
|
||||||
/* Read the contents of R0 and (if necessary) R1. */
|
|
||||||
regcache_cooked_read (regcache, VAX_R0_REGNUM, buf);
|
|
||||||
- if (len > 4)
|
|
||||||
+ if (TYPE_LENGTH (type) > 4)
|
|
||||||
regcache_cooked_read (regcache, VAX_R1_REGNUM, buf + 4);
|
|
||||||
- memcpy (readbuf, buf, len);
|
|
||||||
+ memcpy (readbuf, buf, TYPE_LENGTH (type));
|
|
||||||
}
|
|
||||||
if (writebuf)
|
|
||||||
{
|
|
||||||
/* Read the contents to R0 and (if necessary) R1. */
|
|
||||||
- memcpy (buf, writebuf, len);
|
|
||||||
+ memcpy (buf, writebuf, TYPE_LENGTH (type));
|
|
||||||
regcache_cooked_write (regcache, VAX_R0_REGNUM, buf);
|
|
||||||
- if (len > 4)
|
|
||||||
+ if (TYPE_LENGTH (type) > 4)
|
|
||||||
regcache_cooked_write (regcache, VAX_R1_REGNUM, buf + 4);
|
|
||||||
}
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
@ -52,10 +52,10 @@ Content-Type: text/x-patch
|
|||||||
Content-Transfer-Encoding: 7bit
|
Content-Transfer-Encoding: 7bit
|
||||||
Content-Disposition: attachment; filename=bitpos-ensure-size_t.patch
|
Content-Disposition: attachment; filename=bitpos-ensure-size_t.patch
|
||||||
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/alpha-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/alpha-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/alpha-tdep.c 2012-11-07 22:03:57.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/alpha-tdep.c 2013-01-18 23:33:59.277047324 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/alpha-tdep.c 2012-11-07 22:46:00.042902382 +0100
|
+++ gdb-7.5.50.20130118/gdb/alpha-tdep.c 2013-01-18 23:34:02.678051846 +0100
|
||||||
@@ -414,6 +414,13 @@ alpha_push_dummy_call (struct gdbarch *g
|
@@ -414,6 +414,13 @@ alpha_push_dummy_call (struct gdbarch *g
|
||||||
accumulate_size = 0;
|
accumulate_size = 0;
|
||||||
else
|
else
|
||||||
@ -70,11 +70,11 @@ Index: gdb-7.5.0.20120926/gdb/alpha-tdep.c
|
|||||||
sp -= accumulate_size;
|
sp -= accumulate_size;
|
||||||
|
|
||||||
/* Keep sp aligned to a multiple of 16 as the ABI requires. */
|
/* Keep sp aligned to a multiple of 16 as the ABI requires. */
|
||||||
Index: gdb-7.5.0.20120926/gdb/cp-valprint.c
|
Index: gdb-7.5.50.20130118/gdb/cp-valprint.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/cp-valprint.c 2012-11-07 22:12:14.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/cp-valprint.c 2013-01-18 23:33:59.278047326 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/cp-valprint.c 2012-11-07 22:46:00.043902381 +0100
|
+++ gdb-7.5.50.20130118/gdb/cp-valprint.c 2013-01-18 23:34:02.679051848 +0100
|
||||||
@@ -561,6 +561,8 @@ cp_print_value (struct type *type, struc
|
@@ -540,6 +540,8 @@ cp_print_value (struct type *type, struc
|
||||||
gdb_byte *buf;
|
gdb_byte *buf;
|
||||||
struct cleanup *back_to;
|
struct cleanup *back_to;
|
||||||
|
|
||||||
@ -83,10 +83,10 @@ Index: gdb-7.5.0.20120926/gdb/cp-valprint.c
|
|||||||
buf = xmalloc (TYPE_LENGTH (baseclass));
|
buf = xmalloc (TYPE_LENGTH (baseclass));
|
||||||
back_to = make_cleanup (xfree, buf);
|
back_to = make_cleanup (xfree, buf);
|
||||||
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/dwarf2loc.c
|
Index: gdb-7.5.50.20130118/gdb/dwarf2loc.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/dwarf2loc.c 2012-11-07 22:09:29.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/dwarf2loc.c 2013-01-18 23:33:59.280047332 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/dwarf2loc.c 2012-11-07 22:46:00.070902342 +0100
|
+++ gdb-7.5.50.20130118/gdb/dwarf2loc.c 2013-01-18 23:34:02.680051851 +0100
|
||||||
@@ -1784,6 +1784,8 @@ read_pieced_value (struct value *v)
|
@@ -1784,6 +1784,8 @@ read_pieced_value (struct value *v)
|
||||||
|
|
||||||
this_size = (this_size_bits + source_offset_bits % 8 + 7) / 8;
|
this_size = (this_size_bits + source_offset_bits % 8 + 7) / 8;
|
||||||
@ -104,10 +104,10 @@ Index: gdb-7.5.0.20120926/gdb/dwarf2loc.c
|
|||||||
if (buffer_size < this_size)
|
if (buffer_size < this_size)
|
||||||
{
|
{
|
||||||
buffer_size = this_size;
|
buffer_size = this_size;
|
||||||
Index: gdb-7.5.0.20120926/gdb/findcmd.c
|
Index: gdb-7.5.50.20130118/gdb/findcmd.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/findcmd.c 2012-11-07 22:03:57.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/findcmd.c 2013-01-18 23:33:59.280047332 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/findcmd.c 2012-11-07 22:46:00.153902249 +0100
|
+++ gdb-7.5.50.20130118/gdb/findcmd.c 2013-01-18 23:34:02.680051851 +0100
|
||||||
@@ -187,6 +187,7 @@ parse_find_args (char *args, ULONGEST *m
|
@@ -187,6 +187,7 @@ parse_find_args (char *args, ULONGEST *m
|
||||||
size_t current_offset = pattern_buf_end - pattern_buf;
|
size_t current_offset = pattern_buf_end - pattern_buf;
|
||||||
|
|
||||||
@ -116,11 +116,11 @@ Index: gdb-7.5.0.20120926/gdb/findcmd.c
|
|||||||
pattern_buf = xrealloc (pattern_buf, pattern_buf_size);
|
pattern_buf = xrealloc (pattern_buf, pattern_buf_size);
|
||||||
pattern_buf_end = pattern_buf + current_offset;
|
pattern_buf_end = pattern_buf + current_offset;
|
||||||
}
|
}
|
||||||
Index: gdb-7.5.0.20120926/gdb/p-valprint.c
|
Index: gdb-7.5.50.20130118/gdb/p-valprint.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/p-valprint.c 2012-11-07 22:09:29.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/p-valprint.c 2013-01-18 23:33:59.281047334 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/p-valprint.c 2012-11-07 22:46:00.163902208 +0100
|
+++ gdb-7.5.50.20130118/gdb/p-valprint.c 2013-01-18 23:34:02.680051851 +0100
|
||||||
@@ -827,6 +827,7 @@ pascal_object_print_value (struct type *
|
@@ -797,6 +797,7 @@ pascal_object_print_value (struct type *
|
||||||
gdb_byte *buf;
|
gdb_byte *buf;
|
||||||
struct cleanup *back_to;
|
struct cleanup *back_to;
|
||||||
|
|
||||||
@ -128,11 +128,11 @@ Index: gdb-7.5.0.20120926/gdb/p-valprint.c
|
|||||||
buf = xmalloc (TYPE_LENGTH (baseclass));
|
buf = xmalloc (TYPE_LENGTH (baseclass));
|
||||||
back_to = make_cleanup (xfree, buf);
|
back_to = make_cleanup (xfree, buf);
|
||||||
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/utils.c
|
Index: gdb-7.5.50.20130118/gdb/utils.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/utils.c 2012-11-07 22:00:43.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/utils.c 2013-01-18 23:33:59.282047336 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/utils.c 2012-11-07 22:46:00.166902202 +0100
|
+++ gdb-7.5.50.20130118/gdb/utils.c 2013-01-18 23:34:02.681051854 +0100
|
||||||
@@ -3135,6 +3135,18 @@ host_address_to_string (const void *addr
|
@@ -3219,6 +3219,18 @@ host_address_to_string (const void *addr
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -151,11 +151,11 @@ Index: gdb-7.5.0.20120926/gdb/utils.c
|
|||||||
char *
|
char *
|
||||||
gdb_realpath (const char *filename)
|
gdb_realpath (const char *filename)
|
||||||
{
|
{
|
||||||
Index: gdb-7.5.0.20120926/gdb/valops.c
|
Index: gdb-7.5.50.20130118/gdb/valops.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/valops.c 2012-11-07 22:09:30.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/valops.c 2013-01-18 23:33:59.283047338 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/valops.c 2012-11-07 22:46:00.181902181 +0100
|
+++ gdb-7.5.50.20130118/gdb/valops.c 2013-01-18 23:34:02.682051856 +0100
|
||||||
@@ -2383,6 +2383,7 @@ search_struct_method (const char *name,
|
@@ -2369,6 +2369,7 @@ search_struct_method (const char *name,
|
||||||
struct cleanup *back_to;
|
struct cleanup *back_to;
|
||||||
CORE_ADDR address;
|
CORE_ADDR address;
|
||||||
|
|
||||||
@ -163,10 +163,10 @@ Index: gdb-7.5.0.20120926/gdb/valops.c
|
|||||||
tmp = xmalloc (TYPE_LENGTH (baseclass));
|
tmp = xmalloc (TYPE_LENGTH (baseclass));
|
||||||
back_to = make_cleanup (xfree, tmp);
|
back_to = make_cleanup (xfree, tmp);
|
||||||
address = value_address (*arg1p);
|
address = value_address (*arg1p);
|
||||||
Index: gdb-7.5.0.20120926/gdb/value.c
|
Index: gdb-7.5.50.20130118/gdb/value.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/value.c 2012-11-07 22:09:30.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/value.c 2013-01-18 23:33:59.285047342 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/value.c 2012-11-07 22:46:00.184902176 +0100
|
+++ gdb-7.5.50.20130118/gdb/value.c 2013-01-18 23:34:02.683051858 +0100
|
||||||
@@ -663,6 +663,7 @@ allocate_value_lazy (struct type *type)
|
@@ -663,6 +663,7 @@ allocate_value_lazy (struct type *type)
|
||||||
description correctly. */
|
description correctly. */
|
||||||
check_typedef (type);
|
check_typedef (type);
|
||||||
@ -184,7 +184,7 @@ Index: gdb-7.5.0.20120926/gdb/value.c
|
|||||||
if (!val->contents)
|
if (!val->contents)
|
||||||
val->contents = (gdb_byte *) xzalloc (TYPE_LENGTH (val->enclosing_type));
|
val->contents = (gdb_byte *) xzalloc (TYPE_LENGTH (val->enclosing_type));
|
||||||
}
|
}
|
||||||
@@ -2662,8 +2665,12 @@ void
|
@@ -2672,8 +2675,12 @@ void
|
||||||
set_value_enclosing_type (struct value *val, struct type *new_encl_type)
|
set_value_enclosing_type (struct value *val, struct type *new_encl_type)
|
||||||
{
|
{
|
||||||
if (TYPE_LENGTH (new_encl_type) > TYPE_LENGTH (value_enclosing_type (val)))
|
if (TYPE_LENGTH (new_encl_type) > TYPE_LENGTH (value_enclosing_type (val)))
|
||||||
@ -199,25 +199,25 @@ Index: gdb-7.5.0.20120926/gdb/value.c
|
|||||||
|
|
||||||
val->enclosing_type = new_encl_type;
|
val->enclosing_type = new_encl_type;
|
||||||
}
|
}
|
||||||
Index: gdb-7.5.0.20120926/gdb/vax-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/vax-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/vax-tdep.c 2012-11-07 22:09:24.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/vax-tdep.c 2013-01-18 23:34:02.683051858 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/vax-tdep.c 2012-11-07 22:46:56.810819878 +0100
|
+++ gdb-7.5.50.20130118/gdb/vax-tdep.c 2013-01-18 23:34:34.950094198 +0100
|
||||||
@@ -223,6 +223,7 @@ vax_return_value (struct gdbarch *gdbarc
|
@@ -223,6 +223,7 @@ vax_return_value (struct gdbarch *gdbarc
|
||||||
ULONGEST addr;
|
ULONGEST addr;
|
||||||
|
|
||||||
regcache_raw_read_unsigned (regcache, VAX_R0_REGNUM, &addr);
|
regcache_raw_read_unsigned (regcache, VAX_R0_REGNUM, &addr);
|
||||||
+ ulongest_fits_host_or_error (TYPE_LENGTH (type));
|
+ ulongest_fits_host_or_error (TYPE_LENGTH (type));
|
||||||
read_memory (addr, readbuf, TYPE_LENGTH (type));
|
read_memory (addr, readbuf, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/defs.h
|
Index: gdb-7.5.50.20130118/gdb/defs.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/defs.h 2012-11-07 22:00:43.111906109 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/defs.h 2013-01-18 23:34:02.684051860 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/defs.h 2012-11-07 22:47:46.001001239 +0100
|
+++ gdb-7.5.50.20130118/gdb/defs.h 2013-01-18 23:34:14.238067193 +0100
|
||||||
@@ -1170,4 +1170,6 @@ enum block_enum
|
@@ -801,4 +801,6 @@ enum block_enum
|
||||||
FIRST_LOCAL_BLOCK = 2
|
|
||||||
};
|
#include "utils.h"
|
||||||
|
|
||||||
+extern void ulongest_fits_host_or_error (ULONGEST num);
|
+extern void ulongest_fits_host_or_error (ULONGEST num);
|
||||||
+
|
+
|
||||||
|
@ -96,11 +96,11 @@ Content-Type: text/x-patch
|
|||||||
Content-Transfer-Encoding: 7bit
|
Content-Transfer-Encoding: 7bit
|
||||||
Content-Disposition: attachment; filename=bitpos-wp.patch
|
Content-Disposition: attachment; filename=bitpos-wp.patch
|
||||||
|
|
||||||
diff --git a/gdb/arm-linux-nat.c b/gdb/arm-linux-nat.c
|
Index: gdb-7.5.50.20130118/gdb/arm-linux-nat.c
|
||||||
index 231b008..6deb23d 100644
|
===================================================================
|
||||||
--- a/gdb/arm-linux-nat.c
|
--- gdb-7.5.50.20130118.orig/gdb/arm-linux-nat.c 2013-01-18 23:34:43.930106839 +0100
|
||||||
+++ b/gdb/arm-linux-nat.c
|
+++ gdb-7.5.50.20130118/gdb/arm-linux-nat.c 2013-01-18 23:34:51.206116513 +0100
|
||||||
@@ -1105,7 +1105,7 @@ arm_linux_region_ok_for_hw_watchpoint (CORE_ADDR addr, LONGEST len)
|
@@ -1105,7 +1105,7 @@ arm_linux_region_ok_for_hw_watchpoint (C
|
||||||
|
|
||||||
/* Insert a Hardware breakpoint. */
|
/* Insert a Hardware breakpoint. */
|
||||||
static int
|
static int
|
||||||
@ -109,7 +109,7 @@ index 231b008..6deb23d 100644
|
|||||||
struct expression *cond)
|
struct expression *cond)
|
||||||
{
|
{
|
||||||
struct lwp_info *lp;
|
struct lwp_info *lp;
|
||||||
@@ -1123,7 +1123,7 @@ arm_linux_insert_watchpoint (CORE_ADDR addr, int len, int rw,
|
@@ -1123,7 +1123,7 @@ arm_linux_insert_watchpoint (CORE_ADDR a
|
||||||
|
|
||||||
/* Remove a hardware breakpoint. */
|
/* Remove a hardware breakpoint. */
|
||||||
static int
|
static int
|
||||||
@ -127,11 +127,11 @@ index 231b008..6deb23d 100644
|
|||||||
{
|
{
|
||||||
return start <= addr && start + length - 1 >= addr;
|
return start <= addr && start + length - 1 >= addr;
|
||||||
}
|
}
|
||||||
diff --git a/gdb/i386-nat.c b/gdb/i386-nat.c
|
Index: gdb-7.5.50.20130118/gdb/i386-nat.c
|
||||||
index 76c51a8..9e293fe 100644
|
===================================================================
|
||||||
--- a/gdb/i386-nat.c
|
--- gdb-7.5.50.20130118.orig/gdb/i386-nat.c 2013-01-18 23:34:43.931106841 +0100
|
||||||
+++ b/gdb/i386-nat.c
|
+++ gdb-7.5.50.20130118/gdb/i386-nat.c 2013-01-18 23:34:51.206116513 +0100
|
||||||
@@ -592,7 +592,7 @@ i386_update_inferior_debug_regs (struct i386_debug_reg_state *new_state)
|
@@ -591,7 +591,7 @@ i386_update_inferior_debug_regs (struct
|
||||||
of the type TYPE. Return 0 on success, -1 on failure. */
|
of the type TYPE. Return 0 on success, -1 on failure. */
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -140,7 +140,7 @@ index 76c51a8..9e293fe 100644
|
|||||||
struct expression *cond)
|
struct expression *cond)
|
||||||
{
|
{
|
||||||
struct i386_debug_reg_state *state = i386_debug_reg_state ();
|
struct i386_debug_reg_state *state = i386_debug_reg_state ();
|
||||||
@@ -629,7 +629,7 @@ i386_insert_watchpoint (CORE_ADDR addr, int len, int type,
|
@@ -628,7 +628,7 @@ i386_insert_watchpoint (CORE_ADDR addr,
|
||||||
address ADDR, whose length is LEN bytes, and for accesses of the
|
address ADDR, whose length is LEN bytes, and for accesses of the
|
||||||
type TYPE. Return 0 on success, -1 on failure. */
|
type TYPE. Return 0 on success, -1 on failure. */
|
||||||
static int
|
static int
|
||||||
@ -149,10 +149,10 @@ index 76c51a8..9e293fe 100644
|
|||||||
struct expression *cond)
|
struct expression *cond)
|
||||||
{
|
{
|
||||||
struct i386_debug_reg_state *state = i386_debug_reg_state ();
|
struct i386_debug_reg_state *state = i386_debug_reg_state ();
|
||||||
diff --git a/gdb/ia64-linux-nat.c b/gdb/ia64-linux-nat.c
|
Index: gdb-7.5.50.20130118/gdb/ia64-linux-nat.c
|
||||||
index 9b5fbf3..6061eae 100644
|
===================================================================
|
||||||
--- a/gdb/ia64-linux-nat.c
|
--- gdb-7.5.50.20130118.orig/gdb/ia64-linux-nat.c 2013-01-18 23:34:43.931106841 +0100
|
||||||
+++ b/gdb/ia64-linux-nat.c
|
+++ gdb-7.5.50.20130118/gdb/ia64-linux-nat.c 2013-01-18 23:34:51.206116513 +0100
|
||||||
@@ -542,7 +542,7 @@ is_power_of_2 (int val)
|
@@ -542,7 +542,7 @@ is_power_of_2 (int val)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -162,7 +162,7 @@ index 9b5fbf3..6061eae 100644
|
|||||||
struct expression *cond)
|
struct expression *cond)
|
||||||
{
|
{
|
||||||
struct lwp_info *lp;
|
struct lwp_info *lp;
|
||||||
@@ -596,7 +596,7 @@ ia64_linux_insert_watchpoint (CORE_ADDR addr, int len, int rw,
|
@@ -596,7 +596,7 @@ ia64_linux_insert_watchpoint (CORE_ADDR
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -171,11 +171,11 @@ index 9b5fbf3..6061eae 100644
|
|||||||
struct expression *cond)
|
struct expression *cond)
|
||||||
{
|
{
|
||||||
int idx;
|
int idx;
|
||||||
diff --git a/gdb/inf-ttrace.c b/gdb/inf-ttrace.c
|
Index: gdb-7.5.50.20130118/gdb/inf-ttrace.c
|
||||||
index d60eddb..c33db45 100644
|
===================================================================
|
||||||
--- a/gdb/inf-ttrace.c
|
--- gdb-7.5.50.20130118.orig/gdb/inf-ttrace.c 2013-01-18 23:34:43.932106844 +0100
|
||||||
+++ b/gdb/inf-ttrace.c
|
+++ gdb-7.5.50.20130118/gdb/inf-ttrace.c 2013-01-18 23:34:51.206116513 +0100
|
||||||
@@ -313,14 +313,14 @@ inf_ttrace_disable_page_protections (pid_t pid)
|
@@ -313,14 +313,14 @@ inf_ttrace_disable_page_protections (pid
|
||||||
type TYPE. */
|
type TYPE. */
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -193,7 +193,7 @@ index d60eddb..c33db45 100644
|
|||||||
|
|
||||||
gdb_assert (type == hw_write);
|
gdb_assert (type == hw_write);
|
||||||
|
|
||||||
@@ -337,14 +337,14 @@ inf_ttrace_insert_watchpoint (CORE_ADDR addr, int len, int type,
|
@@ -337,14 +337,14 @@ inf_ttrace_insert_watchpoint (CORE_ADDR
|
||||||
type TYPE. */
|
type TYPE. */
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -211,11 +211,11 @@ index d60eddb..c33db45 100644
|
|||||||
|
|
||||||
gdb_assert (type == hw_write);
|
gdb_assert (type == hw_write);
|
||||||
|
|
||||||
diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c
|
Index: gdb-7.5.50.20130118/gdb/mips-linux-nat.c
|
||||||
index 5566d0c..7467d11 100644
|
===================================================================
|
||||||
--- a/gdb/mips-linux-nat.c
|
--- gdb-7.5.50.20130118.orig/gdb/mips-linux-nat.c 2013-01-18 23:34:43.932106844 +0100
|
||||||
+++ b/gdb/mips-linux-nat.c
|
+++ gdb-7.5.50.20130118/gdb/mips-linux-nat.c 2013-01-18 23:34:51.208116518 +0100
|
||||||
@@ -1017,7 +1017,7 @@ populate_regs_from_watches (struct pt_watch_regs *regs)
|
@@ -1017,7 +1017,7 @@ populate_regs_from_watches (struct pt_wa
|
||||||
watch. Return zero on success. */
|
watch. Return zero on success. */
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -224,7 +224,7 @@ index 5566d0c..7467d11 100644
|
|||||||
struct expression *cond)
|
struct expression *cond)
|
||||||
{
|
{
|
||||||
struct pt_watch_regs regs;
|
struct pt_watch_regs regs;
|
||||||
@@ -1067,7 +1067,7 @@ mips_linux_insert_watchpoint (CORE_ADDR addr, int len, int type,
|
@@ -1067,7 +1067,7 @@ mips_linux_insert_watchpoint (CORE_ADDR
|
||||||
Return zero on success. */
|
Return zero on success. */
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -233,10 +233,10 @@ index 5566d0c..7467d11 100644
|
|||||||
struct expression *cond)
|
struct expression *cond)
|
||||||
{
|
{
|
||||||
int retval;
|
int retval;
|
||||||
diff --git a/gdb/nto-procfs.c b/gdb/nto-procfs.c
|
Index: gdb-7.5.50.20130118/gdb/nto-procfs.c
|
||||||
index b58f318..25fecf3 100644
|
===================================================================
|
||||||
--- a/gdb/nto-procfs.c
|
--- gdb-7.5.50.20130118.orig/gdb/nto-procfs.c 2013-01-18 23:34:43.933106847 +0100
|
||||||
+++ b/gdb/nto-procfs.c
|
+++ gdb-7.5.50.20130118/gdb/nto-procfs.c 2013-01-18 23:34:51.208116518 +0100
|
||||||
@@ -69,10 +69,10 @@ static ptid_t do_attach (ptid_t ptid);
|
@@ -69,10 +69,10 @@ static ptid_t do_attach (ptid_t ptid);
|
||||||
|
|
||||||
static int procfs_can_use_hw_breakpoint (int, int, int);
|
static int procfs_can_use_hw_breakpoint (int, int, int);
|
||||||
@ -250,7 +250,7 @@ index b58f318..25fecf3 100644
|
|||||||
struct expression *cond);
|
struct expression *cond);
|
||||||
|
|
||||||
static int procfs_stopped_by_watchpoint (void);
|
static int procfs_stopped_by_watchpoint (void);
|
||||||
@@ -1493,14 +1493,14 @@ procfs_can_use_hw_breakpoint (int type, int cnt, int othertype)
|
@@ -1493,14 +1493,14 @@ procfs_can_use_hw_breakpoint (int type,
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -267,11 +267,11 @@ index b58f318..25fecf3 100644
|
|||||||
struct expression *cond)
|
struct expression *cond)
|
||||||
{
|
{
|
||||||
return procfs_hw_watchpoint (addr, len, type);
|
return procfs_hw_watchpoint (addr, len, type);
|
||||||
diff --git a/gdb/ppc-linux-nat.c b/gdb/ppc-linux-nat.c
|
Index: gdb-7.5.50.20130118/gdb/ppc-linux-nat.c
|
||||||
index 67e1cac..abfb2fc 100644
|
===================================================================
|
||||||
--- a/gdb/ppc-linux-nat.c
|
--- gdb-7.5.50.20130118.orig/gdb/ppc-linux-nat.c 2013-01-18 23:34:43.934106849 +0100
|
||||||
+++ b/gdb/ppc-linux-nat.c
|
+++ gdb-7.5.50.20130118/gdb/ppc-linux-nat.c 2013-01-18 23:34:51.208116518 +0100
|
||||||
@@ -1839,11 +1839,11 @@ can_use_watchpoint_cond_accel (void)
|
@@ -1838,11 +1838,11 @@ can_use_watchpoint_cond_accel (void)
|
||||||
CONDITION_VALUE will hold the value which should be put in the
|
CONDITION_VALUE will hold the value which should be put in the
|
||||||
DVC register. */
|
DVC register. */
|
||||||
static void
|
static void
|
||||||
@ -286,7 +286,7 @@ index 67e1cac..abfb2fc 100644
|
|||||||
CORE_ADDR addr_end_data, addr_end_dvc;
|
CORE_ADDR addr_end_data, addr_end_dvc;
|
||||||
|
|
||||||
/* The DVC register compares bytes within fixed-length windows which
|
/* The DVC register compares bytes within fixed-length windows which
|
||||||
@@ -1930,7 +1930,7 @@ num_memory_accesses (struct value *v)
|
@@ -1929,7 +1929,7 @@ num_memory_accesses (struct value *v)
|
||||||
of the constant. */
|
of the constant. */
|
||||||
static int
|
static int
|
||||||
check_condition (CORE_ADDR watch_addr, struct expression *cond,
|
check_condition (CORE_ADDR watch_addr, struct expression *cond,
|
||||||
@ -295,7 +295,7 @@ index 67e1cac..abfb2fc 100644
|
|||||||
{
|
{
|
||||||
int pc = 1, num_accesses_left, num_accesses_right;
|
int pc = 1, num_accesses_left, num_accesses_right;
|
||||||
struct value *left_val, *right_val, *left_chain, *right_chain;
|
struct value *left_val, *right_val, *left_chain, *right_chain;
|
||||||
@@ -1997,7 +1997,7 @@ check_condition (CORE_ADDR watch_addr, struct expression *cond,
|
@@ -1996,7 +1996,7 @@ check_condition (CORE_ADDR watch_addr, s
|
||||||
the condition expression, thus only triggering the watchpoint when it is
|
the condition expression, thus only triggering the watchpoint when it is
|
||||||
true. */
|
true. */
|
||||||
static int
|
static int
|
||||||
@ -304,7 +304,7 @@ index 67e1cac..abfb2fc 100644
|
|||||||
struct expression *cond)
|
struct expression *cond)
|
||||||
{
|
{
|
||||||
CORE_ADDR data_value;
|
CORE_ADDR data_value;
|
||||||
@@ -2014,7 +2014,7 @@ ppc_linux_can_accel_watchpoint_condition (CORE_ADDR addr, int len, int rw,
|
@@ -2013,7 +2013,7 @@ ppc_linux_can_accel_watchpoint_condition
|
||||||
|
|
||||||
static void
|
static void
|
||||||
create_watchpoint_request (struct ppc_hw_breakpoint *p, CORE_ADDR addr,
|
create_watchpoint_request (struct ppc_hw_breakpoint *p, CORE_ADDR addr,
|
||||||
@ -313,7 +313,7 @@ index 67e1cac..abfb2fc 100644
|
|||||||
int insert)
|
int insert)
|
||||||
{
|
{
|
||||||
if (len == 1
|
if (len == 1
|
||||||
@@ -2059,7 +2059,7 @@ create_watchpoint_request (struct ppc_hw_breakpoint *p, CORE_ADDR addr,
|
@@ -2058,7 +2058,7 @@ create_watchpoint_request (struct ppc_hw
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -322,7 +322,7 @@ index 67e1cac..abfb2fc 100644
|
|||||||
struct expression *cond)
|
struct expression *cond)
|
||||||
{
|
{
|
||||||
struct lwp_info *lp;
|
struct lwp_info *lp;
|
||||||
@@ -2127,7 +2127,7 @@ ppc_linux_insert_watchpoint (CORE_ADDR addr, int len, int rw,
|
@@ -2126,7 +2126,7 @@ ppc_linux_insert_watchpoint (CORE_ADDR a
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -331,7 +331,7 @@ index 67e1cac..abfb2fc 100644
|
|||||||
struct expression *cond)
|
struct expression *cond)
|
||||||
{
|
{
|
||||||
struct lwp_info *lp;
|
struct lwp_info *lp;
|
||||||
@@ -2267,7 +2267,7 @@ ppc_linux_stopped_by_watchpoint (void)
|
@@ -2266,7 +2266,7 @@ ppc_linux_stopped_by_watchpoint (void)
|
||||||
static int
|
static int
|
||||||
ppc_linux_watchpoint_addr_within_range (struct target_ops *target,
|
ppc_linux_watchpoint_addr_within_range (struct target_ops *target,
|
||||||
CORE_ADDR addr,
|
CORE_ADDR addr,
|
||||||
@ -340,11 +340,11 @@ index 67e1cac..abfb2fc 100644
|
|||||||
{
|
{
|
||||||
int mask;
|
int mask;
|
||||||
|
|
||||||
diff --git a/gdb/procfs.c b/gdb/procfs.c
|
Index: gdb-7.5.50.20130118/gdb/procfs.c
|
||||||
index 4a9336f..26accd8 100644
|
===================================================================
|
||||||
--- a/gdb/procfs.c
|
--- gdb-7.5.50.20130118.orig/gdb/procfs.c 2013-01-18 23:34:43.937106855 +0100
|
||||||
+++ b/gdb/procfs.c
|
+++ gdb-7.5.50.20130118/gdb/procfs.c 2013-01-18 23:35:12.598145073 +0100
|
||||||
@@ -2470,7 +2470,7 @@ procfs_address_to_host_pointer (CORE_ADDR addr)
|
@@ -2433,7 +2433,7 @@ procfs_address_to_host_pointer (CORE_ADD
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -353,7 +353,7 @@ index 4a9336f..26accd8 100644
|
|||||||
{
|
{
|
||||||
#if !defined (PCWATCH) && !defined (PIOCSWATCH)
|
#if !defined (PCWATCH) && !defined (PIOCSWATCH)
|
||||||
/* If neither or these is defined, we can't support watchpoints.
|
/* If neither or these is defined, we can't support watchpoints.
|
||||||
@@ -4816,7 +4816,7 @@ procfs_pid_to_str (struct target_ops *ops, ptid_t ptid)
|
@@ -4777,7 +4777,7 @@ procfs_pid_to_str (struct target_ops *op
|
||||||
/* Insert a watchpoint. */
|
/* Insert a watchpoint. */
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -361,8 +361,8 @@ index 4a9336f..26accd8 100644
|
|||||||
+procfs_set_watchpoint (ptid_t ptid, CORE_ADDR addr, LONGEST len, int rwflag,
|
+procfs_set_watchpoint (ptid_t ptid, CORE_ADDR addr, LONGEST len, int rwflag,
|
||||||
int after)
|
int after)
|
||||||
{
|
{
|
||||||
#ifndef UNIXWARE
|
#ifndef AIX5
|
||||||
@@ -4938,7 +4938,7 @@ procfs_stopped_data_address (struct target_ops *targ, CORE_ADDR *addr)
|
@@ -4897,7 +4897,7 @@ procfs_stopped_data_address (struct targ
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -371,7 +371,7 @@ index 4a9336f..26accd8 100644
|
|||||||
struct expression *cond)
|
struct expression *cond)
|
||||||
{
|
{
|
||||||
if (!target_have_steppable_watchpoint
|
if (!target_have_steppable_watchpoint
|
||||||
@@ -4960,7 +4960,7 @@ procfs_insert_watchpoint (CORE_ADDR addr, int len, int type,
|
@@ -4919,7 +4919,7 @@ procfs_insert_watchpoint (CORE_ADDR addr
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -380,11 +380,11 @@ index 4a9336f..26accd8 100644
|
|||||||
struct expression *cond)
|
struct expression *cond)
|
||||||
{
|
{
|
||||||
return procfs_set_watchpoint (inferior_ptid, addr, 0, 0, 0);
|
return procfs_set_watchpoint (inferior_ptid, addr, 0, 0, 0);
|
||||||
diff --git a/gdb/remote-m32r-sdi.c b/gdb/remote-m32r-sdi.c
|
Index: gdb-7.5.50.20130118/gdb/remote-m32r-sdi.c
|
||||||
index 748aeba..b385c3f 100644
|
===================================================================
|
||||||
--- a/gdb/remote-m32r-sdi.c
|
--- gdb-7.5.50.20130118.orig/gdb/remote-m32r-sdi.c 2013-01-18 23:34:51.211116523 +0100
|
||||||
+++ b/gdb/remote-m32r-sdi.c
|
+++ gdb-7.5.50.20130118/gdb/remote-m32r-sdi.c 2013-01-18 23:36:50.004276296 +0100
|
||||||
@@ -1417,14 +1417,14 @@ m32r_can_use_hw_watchpoint (int type, int cnt, int othertype)
|
@@ -1417,14 +1417,15 @@ m32r_can_use_hw_watchpoint (int type, in
|
||||||
watchpoint. */
|
watchpoint. */
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -396,13 +396,14 @@ index 748aeba..b385c3f 100644
|
|||||||
|
|
||||||
if (remote_debug)
|
if (remote_debug)
|
||||||
- fprintf_unfiltered (gdb_stdlog, "m32r_insert_watchpoint(%s,%d,%d)\n",
|
- fprintf_unfiltered (gdb_stdlog, "m32r_insert_watchpoint(%s,%d,%d)\n",
|
||||||
- paddress (target_gdbarch, addr), len, type);
|
- paddress (target_gdbarch (), addr), len, type);
|
||||||
+ fprintf_unfiltered (gdb_stdlog, "m32r_insert_watchpoint(%s,%s,%d)\n",
|
+ fprintf_unfiltered (gdb_stdlog, "m32r_insert_watchpoint(%s,%s,%d)\n",
|
||||||
+ paddress (target_gdbarch, addr), plongest (len), type);
|
+ paddress (target_gdbarch (), addr), plongest (len),
|
||||||
|
+ type);
|
||||||
|
|
||||||
for (i = 0; i < MAX_ACCESS_BREAKS; i++)
|
for (i = 0; i < MAX_ACCESS_BREAKS; i++)
|
||||||
{
|
{
|
||||||
@@ -1442,14 +1442,14 @@ m32r_insert_watchpoint (CORE_ADDR addr, int len, int type,
|
@@ -1442,14 +1443,15 @@ m32r_insert_watchpoint (CORE_ADDR addr,
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -414,16 +415,17 @@ index 748aeba..b385c3f 100644
|
|||||||
|
|
||||||
if (remote_debug)
|
if (remote_debug)
|
||||||
- fprintf_unfiltered (gdb_stdlog, "m32r_remove_watchpoint(%s,%d,%d)\n",
|
- fprintf_unfiltered (gdb_stdlog, "m32r_remove_watchpoint(%s,%d,%d)\n",
|
||||||
- paddress (target_gdbarch, addr), len, type);
|
- paddress (target_gdbarch (), addr), len, type);
|
||||||
+ fprintf_unfiltered (gdb_stdlog, "m32r_remove_watchpoint(%s,%s,%d)\n",
|
+ fprintf_unfiltered (gdb_stdlog, "m32r_remove_watchpoint(%s,%s,%d)\n",
|
||||||
+ paddress (target_gdbarch, addr), plongest (len), type);
|
+ paddress (target_gdbarch (), addr), plongest (len),
|
||||||
|
+ type);
|
||||||
|
|
||||||
for (i = 0; i < MAX_ACCESS_BREAKS; i++)
|
for (i = 0; i < MAX_ACCESS_BREAKS; i++)
|
||||||
{
|
{
|
||||||
diff --git a/gdb/remote-mips.c b/gdb/remote-mips.c
|
Index: gdb-7.5.50.20130118/gdb/remote-mips.c
|
||||||
index eee2460..9a9265a 100644
|
===================================================================
|
||||||
--- a/gdb/remote-mips.c
|
--- gdb-7.5.50.20130118.orig/gdb/remote-mips.c 2013-01-18 23:34:43.939106860 +0100
|
||||||
+++ b/gdb/remote-mips.c
|
+++ gdb-7.5.50.20130118/gdb/remote-mips.c 2013-01-18 23:34:51.212116525 +0100
|
||||||
@@ -2419,7 +2419,7 @@ calculate_mask (CORE_ADDR addr, int len)
|
@@ -2419,7 +2419,7 @@ calculate_mask (CORE_ADDR addr, int len)
|
||||||
watchpoint. */
|
watchpoint. */
|
||||||
|
|
||||||
@ -433,7 +435,7 @@ index eee2460..9a9265a 100644
|
|||||||
struct expression *cond)
|
struct expression *cond)
|
||||||
{
|
{
|
||||||
if (mips_set_breakpoint (addr, len, type))
|
if (mips_set_breakpoint (addr, len, type))
|
||||||
@@ -2431,7 +2431,7 @@ mips_insert_watchpoint (CORE_ADDR addr, int len, int type,
|
@@ -2431,7 +2431,7 @@ mips_insert_watchpoint (CORE_ADDR addr,
|
||||||
/* Remove a watchpoint. */
|
/* Remove a watchpoint. */
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -442,11 +444,11 @@ index eee2460..9a9265a 100644
|
|||||||
struct expression *cond)
|
struct expression *cond)
|
||||||
{
|
{
|
||||||
if (mips_clear_breakpoint (addr, len, type))
|
if (mips_clear_breakpoint (addr, len, type))
|
||||||
diff --git a/gdb/remote.c b/gdb/remote.c
|
Index: gdb-7.5.50.20130118/gdb/remote.c
|
||||||
index 8c27390..bcec331 100644
|
===================================================================
|
||||||
--- a/gdb/remote.c
|
--- gdb-7.5.50.20130118.orig/gdb/remote.c 2013-01-18 23:34:43.943106869 +0100
|
||||||
+++ b/gdb/remote.c
|
+++ gdb-7.5.50.20130118/gdb/remote.c 2013-01-18 23:34:51.214116529 +0100
|
||||||
@@ -8035,7 +8035,7 @@ watchpoint_to_Z_packet (int type)
|
@@ -8093,7 +8093,7 @@ watchpoint_to_Z_packet (int type)
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -455,7 +457,7 @@ index 8c27390..bcec331 100644
|
|||||||
struct expression *cond)
|
struct expression *cond)
|
||||||
{
|
{
|
||||||
struct remote_state *rs = get_remote_state ();
|
struct remote_state *rs = get_remote_state ();
|
||||||
@@ -8050,7 +8050,7 @@ remote_insert_watchpoint (CORE_ADDR addr, int len, int type,
|
@@ -8108,7 +8108,7 @@ remote_insert_watchpoint (CORE_ADDR addr
|
||||||
p = strchr (rs->buf, '\0');
|
p = strchr (rs->buf, '\0');
|
||||||
addr = remote_address_masked (addr);
|
addr = remote_address_masked (addr);
|
||||||
p += hexnumstr (p, (ULONGEST) addr);
|
p += hexnumstr (p, (ULONGEST) addr);
|
||||||
@ -464,7 +466,7 @@ index 8c27390..bcec331 100644
|
|||||||
|
|
||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, &rs->buf_size, 0);
|
getpkt (&rs->buf, &rs->buf_size, 0);
|
||||||
@@ -8070,7 +8070,7 @@ remote_insert_watchpoint (CORE_ADDR addr, int len, int type,
|
@@ -8128,7 +8128,7 @@ remote_insert_watchpoint (CORE_ADDR addr
|
||||||
|
|
||||||
static int
|
static int
|
||||||
remote_watchpoint_addr_within_range (struct target_ops *target, CORE_ADDR addr,
|
remote_watchpoint_addr_within_range (struct target_ops *target, CORE_ADDR addr,
|
||||||
@ -473,7 +475,7 @@ index 8c27390..bcec331 100644
|
|||||||
{
|
{
|
||||||
CORE_ADDR diff = remote_address_masked (addr - start);
|
CORE_ADDR diff = remote_address_masked (addr - start);
|
||||||
|
|
||||||
@@ -8079,7 +8079,7 @@ remote_watchpoint_addr_within_range (struct target_ops *target, CORE_ADDR addr,
|
@@ -8137,7 +8137,7 @@ remote_watchpoint_addr_within_range (str
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -482,7 +484,7 @@ index 8c27390..bcec331 100644
|
|||||||
struct expression *cond)
|
struct expression *cond)
|
||||||
{
|
{
|
||||||
struct remote_state *rs = get_remote_state ();
|
struct remote_state *rs = get_remote_state ();
|
||||||
@@ -8094,7 +8094,7 @@ remote_remove_watchpoint (CORE_ADDR addr, int len, int type,
|
@@ -8152,7 +8152,7 @@ remote_remove_watchpoint (CORE_ADDR addr
|
||||||
p = strchr (rs->buf, '\0');
|
p = strchr (rs->buf, '\0');
|
||||||
addr = remote_address_masked (addr);
|
addr = remote_address_masked (addr);
|
||||||
p += hexnumstr (p, (ULONGEST) addr);
|
p += hexnumstr (p, (ULONGEST) addr);
|
||||||
@ -491,11 +493,11 @@ index 8c27390..bcec331 100644
|
|||||||
putpkt (rs->buf);
|
putpkt (rs->buf);
|
||||||
getpkt (&rs->buf, &rs->buf_size, 0);
|
getpkt (&rs->buf, &rs->buf_size, 0);
|
||||||
|
|
||||||
diff --git a/gdb/s390-nat.c b/gdb/s390-nat.c
|
Index: gdb-7.5.50.20130118/gdb/s390-nat.c
|
||||||
index 4974bad..3f41519 100644
|
===================================================================
|
||||||
--- a/gdb/s390-nat.c
|
--- gdb-7.5.50.20130118.orig/gdb/s390-nat.c 2013-01-18 23:34:43.944106871 +0100
|
||||||
+++ b/gdb/s390-nat.c
|
+++ gdb-7.5.50.20130118/gdb/s390-nat.c 2013-01-18 23:34:51.215116531 +0100
|
||||||
@@ -517,7 +517,7 @@ s390_fix_watch_points (struct lwp_info *lp)
|
@@ -516,7 +516,7 @@ s390_fix_watch_points (struct lwp_info *
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -504,7 +506,7 @@ index 4974bad..3f41519 100644
|
|||||||
struct expression *cond)
|
struct expression *cond)
|
||||||
{
|
{
|
||||||
struct lwp_info *lp;
|
struct lwp_info *lp;
|
||||||
@@ -538,7 +538,7 @@ s390_insert_watchpoint (CORE_ADDR addr, int len, int type,
|
@@ -537,7 +537,7 @@ s390_insert_watchpoint (CORE_ADDR addr,
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -513,10 +515,10 @@ index 4974bad..3f41519 100644
|
|||||||
struct expression *cond)
|
struct expression *cond)
|
||||||
{
|
{
|
||||||
struct lwp_info *lp;
|
struct lwp_info *lp;
|
||||||
diff --git a/gdb/target.c b/gdb/target.c
|
Index: gdb-7.5.50.20130118/gdb/target.c
|
||||||
index f7207c0..a69fb06 100644
|
===================================================================
|
||||||
--- a/gdb/target.c
|
--- gdb-7.5.50.20130118.orig/gdb/target.c 2013-01-18 23:34:43.947106878 +0100
|
||||||
+++ b/gdb/target.c
|
+++ gdb-7.5.50.20130118/gdb/target.c 2013-01-18 23:34:51.216116533 +0100
|
||||||
@@ -49,7 +49,8 @@ static void target_info (char *, int);
|
@@ -49,7 +49,8 @@ static void target_info (char *, int);
|
||||||
static void default_terminal_info (char *, int);
|
static void default_terminal_info (char *, int);
|
||||||
|
|
||||||
@ -527,7 +529,7 @@ index f7207c0..a69fb06 100644
|
|||||||
|
|
||||||
static int default_region_ok_for_hw_watchpoint (CORE_ADDR, LONGEST);
|
static int default_region_ok_for_hw_watchpoint (CORE_ADDR, LONGEST);
|
||||||
|
|
||||||
@@ -114,10 +115,10 @@ static int debug_to_insert_hw_breakpoint (struct gdbarch *,
|
@@ -114,10 +115,10 @@ static int debug_to_insert_hw_breakpoint
|
||||||
static int debug_to_remove_hw_breakpoint (struct gdbarch *,
|
static int debug_to_remove_hw_breakpoint (struct gdbarch *,
|
||||||
struct bp_target_info *);
|
struct bp_target_info *);
|
||||||
|
|
||||||
@ -540,7 +542,7 @@ index f7207c0..a69fb06 100644
|
|||||||
struct expression *);
|
struct expression *);
|
||||||
|
|
||||||
static int debug_to_stopped_by_watchpoint (void);
|
static int debug_to_stopped_by_watchpoint (void);
|
||||||
@@ -125,11 +126,12 @@ static int debug_to_stopped_by_watchpoint (void);
|
@@ -125,11 +126,12 @@ static int debug_to_stopped_by_watchpoin
|
||||||
static int debug_to_stopped_data_address (struct target_ops *, CORE_ADDR *);
|
static int debug_to_stopped_data_address (struct target_ops *, CORE_ADDR *);
|
||||||
|
|
||||||
static int debug_to_watchpoint_addr_within_range (struct target_ops *,
|
static int debug_to_watchpoint_addr_within_range (struct target_ops *,
|
||||||
@ -577,7 +579,7 @@ index f7207c0..a69fb06 100644
|
|||||||
return_zero);
|
return_zero);
|
||||||
de_fault (to_terminal_init,
|
de_fault (to_terminal_init,
|
||||||
(void (*) (void))
|
(void (*) (void))
|
||||||
@@ -3558,7 +3560,7 @@ default_region_ok_for_hw_watchpoint (CORE_ADDR addr, LONGEST len)
|
@@ -3560,7 +3562,7 @@ default_region_ok_for_hw_watchpoint (COR
|
||||||
static int
|
static int
|
||||||
default_watchpoint_addr_within_range (struct target_ops *target,
|
default_watchpoint_addr_within_range (struct target_ops *target,
|
||||||
CORE_ADDR addr,
|
CORE_ADDR addr,
|
||||||
@ -586,7 +588,7 @@ index f7207c0..a69fb06 100644
|
|||||||
{
|
{
|
||||||
return addr >= start && addr < start + length;
|
return addr >= start && addr < start + length;
|
||||||
}
|
}
|
||||||
@@ -4263,7 +4265,7 @@ debug_to_region_ok_for_hw_watchpoint (CORE_ADDR addr, LONGEST len)
|
@@ -4267,7 +4269,7 @@ debug_to_region_ok_for_hw_watchpoint (CO
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -595,7 +597,7 @@ index f7207c0..a69fb06 100644
|
|||||||
struct expression *cond)
|
struct expression *cond)
|
||||||
{
|
{
|
||||||
int retval;
|
int retval;
|
||||||
@@ -4273,8 +4275,8 @@ debug_to_can_accel_watchpoint_condition (CORE_ADDR addr, int len, int rw,
|
@@ -4277,8 +4279,8 @@ debug_to_can_accel_watchpoint_condition
|
||||||
|
|
||||||
fprintf_unfiltered (gdb_stdlog,
|
fprintf_unfiltered (gdb_stdlog,
|
||||||
"target_can_accel_watchpoint_condition "
|
"target_can_accel_watchpoint_condition "
|
||||||
@ -606,7 +608,7 @@ index f7207c0..a69fb06 100644
|
|||||||
host_address_to_string (cond), (unsigned long) retval);
|
host_address_to_string (cond), (unsigned long) retval);
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
@@ -4309,7 +4311,7 @@ debug_to_stopped_data_address (struct target_ops *target, CORE_ADDR *addr)
|
@@ -4313,7 +4315,7 @@ debug_to_stopped_data_address (struct ta
|
||||||
static int
|
static int
|
||||||
debug_to_watchpoint_addr_within_range (struct target_ops *target,
|
debug_to_watchpoint_addr_within_range (struct target_ops *target,
|
||||||
CORE_ADDR addr,
|
CORE_ADDR addr,
|
||||||
@ -615,7 +617,7 @@ index f7207c0..a69fb06 100644
|
|||||||
{
|
{
|
||||||
int retval;
|
int retval;
|
||||||
|
|
||||||
@@ -4317,9 +4319,9 @@ debug_to_watchpoint_addr_within_range (struct target_ops *target,
|
@@ -4321,9 +4323,9 @@ debug_to_watchpoint_addr_within_range (s
|
||||||
start, length);
|
start, length);
|
||||||
|
|
||||||
fprintf_filtered (gdb_stdlog,
|
fprintf_filtered (gdb_stdlog,
|
||||||
@ -627,7 +629,7 @@ index f7207c0..a69fb06 100644
|
|||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4354,7 +4356,7 @@ debug_to_remove_hw_breakpoint (struct gdbarch *gdbarch,
|
@@ -4358,7 +4360,7 @@ debug_to_remove_hw_breakpoint (struct gd
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -636,7 +638,7 @@ index f7207c0..a69fb06 100644
|
|||||||
struct expression *cond)
|
struct expression *cond)
|
||||||
{
|
{
|
||||||
int retval;
|
int retval;
|
||||||
@@ -4362,14 +4364,14 @@ debug_to_insert_watchpoint (CORE_ADDR addr, int len, int type,
|
@@ -4366,14 +4368,14 @@ debug_to_insert_watchpoint (CORE_ADDR ad
|
||||||
retval = debug_target.to_insert_watchpoint (addr, len, type, cond);
|
retval = debug_target.to_insert_watchpoint (addr, len, type, cond);
|
||||||
|
|
||||||
fprintf_unfiltered (gdb_stdlog,
|
fprintf_unfiltered (gdb_stdlog,
|
||||||
@ -654,7 +656,7 @@ index f7207c0..a69fb06 100644
|
|||||||
struct expression *cond)
|
struct expression *cond)
|
||||||
{
|
{
|
||||||
int retval;
|
int retval;
|
||||||
@@ -4377,8 +4379,8 @@ debug_to_remove_watchpoint (CORE_ADDR addr, int len, int type,
|
@@ -4381,8 +4383,8 @@ debug_to_remove_watchpoint (CORE_ADDR ad
|
||||||
retval = debug_target.to_remove_watchpoint (addr, len, type, cond);
|
retval = debug_target.to_remove_watchpoint (addr, len, type, cond);
|
||||||
|
|
||||||
fprintf_unfiltered (gdb_stdlog,
|
fprintf_unfiltered (gdb_stdlog,
|
||||||
@ -665,10 +667,10 @@ index f7207c0..a69fb06 100644
|
|||||||
host_address_to_string (cond), (unsigned long) retval);
|
host_address_to_string (cond), (unsigned long) retval);
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
diff --git a/gdb/target.h b/gdb/target.h
|
Index: gdb-7.5.50.20130118/gdb/target.h
|
||||||
index 69228e1..4b52d53 100644
|
===================================================================
|
||||||
--- a/gdb/target.h
|
--- gdb-7.5.50.20130118.orig/gdb/target.h 2013-01-18 23:34:43.947106878 +0100
|
||||||
+++ b/gdb/target.h
|
+++ gdb-7.5.50.20130118/gdb/target.h 2013-01-18 23:34:51.217116536 +0100
|
||||||
@@ -466,8 +466,8 @@ struct target_ops
|
@@ -466,8 +466,8 @@ struct target_ops
|
||||||
|
|
||||||
/* Documentation of what the two routines below are expected to do is
|
/* Documentation of what the two routines below are expected to do is
|
||||||
@ -696,6 +698,3 @@ index 69228e1..4b52d53 100644
|
|||||||
struct expression *);
|
struct expression *);
|
||||||
int (*to_masked_watch_num_registers) (struct target_ops *,
|
int (*to_masked_watch_num_registers) (struct target_ops *,
|
||||||
CORE_ADDR, CORE_ADDR);
|
CORE_ADDR, CORE_ADDR);
|
||||||
|
|
||||||
--MP_/6HRlH6vpyqtSy4CYyMrX6b2--
|
|
||||||
|
|
||||||
|
@ -137,10 +137,10 @@ Content-Type: text/x-patch
|
|||||||
Content-Transfer-Encoding: 7bit
|
Content-Transfer-Encoding: 7bit
|
||||||
Content-Disposition: attachment; filename=bitpos-tdep.patch
|
Content-Disposition: attachment; filename=bitpos-tdep.patch
|
||||||
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/alpha-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/alpha-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/alpha-tdep.c 2012-11-07 22:46:00.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/alpha-tdep.c 2013-01-18 23:36:59.954290362 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/alpha-tdep.c 2012-11-07 22:47:57.371984929 +0100
|
+++ gdb-7.5.50.20130118/gdb/alpha-tdep.c 2013-01-18 23:37:12.465307566 +0100
|
||||||
@@ -299,18 +299,18 @@ alpha_push_dummy_call (struct gdbarch *g
|
@@ -299,18 +299,18 @@ alpha_push_dummy_call (struct gdbarch *g
|
||||||
{
|
{
|
||||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||||
@ -184,11 +184,11 @@ Index: gdb-7.5.0.20120926/gdb/alpha-tdep.c
|
|||||||
memcpy (arg_reg_buffer + offset, contents, tlen);
|
memcpy (arg_reg_buffer + offset, contents, tlen);
|
||||||
offset += tlen;
|
offset += tlen;
|
||||||
contents += tlen;
|
contents += tlen;
|
||||||
Index: gdb-7.5.0.20120926/gdb/amd64-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/amd64-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/amd64-tdep.c 2012-11-07 22:09:24.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/amd64-tdep.c 2013-01-18 23:36:59.955290365 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/amd64-tdep.c 2012-11-07 22:47:57.374984923 +0100
|
+++ gdb-7.5.50.20130118/gdb/amd64-tdep.c 2013-01-18 23:37:12.466307569 +0100
|
||||||
@@ -599,7 +599,7 @@ amd64_return_value (struct gdbarch *gdba
|
@@ -616,7 +616,7 @@ amd64_return_value (struct gdbarch *gdba
|
||||||
{
|
{
|
||||||
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
|
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
|
||||||
enum amd64_reg_class class[2];
|
enum amd64_reg_class class[2];
|
||||||
@ -197,7 +197,7 @@ Index: gdb-7.5.0.20120926/gdb/amd64-tdep.c
|
|||||||
static int integer_regnum[] = { AMD64_RAX_REGNUM, AMD64_RDX_REGNUM };
|
static int integer_regnum[] = { AMD64_RAX_REGNUM, AMD64_RDX_REGNUM };
|
||||||
static int sse_regnum[] = { AMD64_XMM0_REGNUM, AMD64_XMM1_REGNUM };
|
static int sse_regnum[] = { AMD64_XMM0_REGNUM, AMD64_XMM1_REGNUM };
|
||||||
int integer_reg = 0;
|
int integer_reg = 0;
|
||||||
@@ -728,8 +728,8 @@ amd64_push_arguments (struct regcache *r
|
@@ -769,8 +769,8 @@ amd64_push_arguments (struct regcache *r
|
||||||
that register number (or a negative value otherwise). */
|
that register number (or a negative value otherwise). */
|
||||||
int *arg_addr_regno = alloca (nargs * sizeof (int));
|
int *arg_addr_regno = alloca (nargs * sizeof (int));
|
||||||
int num_stack_args = 0;
|
int num_stack_args = 0;
|
||||||
@ -208,7 +208,7 @@ Index: gdb-7.5.0.20120926/gdb/amd64-tdep.c
|
|||||||
int integer_reg = 0;
|
int integer_reg = 0;
|
||||||
int sse_reg = 0;
|
int sse_reg = 0;
|
||||||
int i;
|
int i;
|
||||||
@@ -743,7 +743,7 @@ amd64_push_arguments (struct regcache *r
|
@@ -784,7 +784,7 @@ amd64_push_arguments (struct regcache *r
|
||||||
for (i = 0; i < nargs; i++)
|
for (i = 0; i < nargs; i++)
|
||||||
{
|
{
|
||||||
struct type *type = value_type (args[i]);
|
struct type *type = value_type (args[i]);
|
||||||
@ -217,11 +217,11 @@ Index: gdb-7.5.0.20120926/gdb/amd64-tdep.c
|
|||||||
enum amd64_reg_class class[2];
|
enum amd64_reg_class class[2];
|
||||||
int needed_integer_regs = 0;
|
int needed_integer_regs = 0;
|
||||||
int needed_sse_regs = 0;
|
int needed_sse_regs = 0;
|
||||||
Index: gdb-7.5.0.20120926/gdb/amd64-windows-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/amd64-windows-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/amd64-windows-tdep.c 2012-06-05 15:50:57.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/amd64-windows-tdep.c 2013-01-18 23:36:59.956290369 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/amd64-windows-tdep.c 2012-11-07 22:47:57.413984867 +0100
|
+++ gdb-7.5.50.20130118/gdb/amd64-windows-tdep.c 2013-01-18 23:37:12.466307569 +0100
|
||||||
@@ -78,7 +78,7 @@ amd64_windows_return_value (struct gdbar
|
@@ -79,7 +79,7 @@ amd64_windows_return_value (struct gdbar
|
||||||
struct type *type, struct regcache *regcache,
|
struct type *type, struct regcache *regcache,
|
||||||
gdb_byte *readbuf, const gdb_byte *writebuf)
|
gdb_byte *readbuf, const gdb_byte *writebuf)
|
||||||
{
|
{
|
||||||
@ -230,11 +230,11 @@ Index: gdb-7.5.0.20120926/gdb/amd64-windows-tdep.c
|
|||||||
int regnum = -1;
|
int regnum = -1;
|
||||||
|
|
||||||
/* See if our value is returned through a register. If it is, then
|
/* See if our value is returned through a register. If it is, then
|
||||||
Index: gdb-7.5.0.20120926/gdb/arm-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/arm-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/arm-tdep.c 2012-06-25 14:32:45.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/arm-tdep.c 2013-01-18 23:36:59.961290378 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/arm-tdep.c 2012-11-07 22:47:57.422984855 +0100
|
+++ gdb-7.5.50.20130118/gdb/arm-tdep.c 2013-01-18 23:37:12.469307573 +0100
|
||||||
@@ -3377,7 +3377,7 @@ arm_vfp_cprc_reg_char (enum arm_vfp_cprc
|
@@ -3496,7 +3496,7 @@ arm_vfp_cprc_reg_char (enum arm_vfp_cprc
|
||||||
array). Vectors and complex types are not currently supported,
|
array). Vectors and complex types are not currently supported,
|
||||||
matching the generic AAPCS support. */
|
matching the generic AAPCS support. */
|
||||||
|
|
||||||
@ -243,7 +243,7 @@ Index: gdb-7.5.0.20120926/gdb/arm-tdep.c
|
|||||||
arm_vfp_cprc_sub_candidate (struct type *t,
|
arm_vfp_cprc_sub_candidate (struct type *t,
|
||||||
enum arm_vfp_cprc_base_type *base_type)
|
enum arm_vfp_cprc_base_type *base_type)
|
||||||
{
|
{
|
||||||
@@ -3408,7 +3408,7 @@ arm_vfp_cprc_sub_candidate (struct type
|
@@ -3527,7 +3527,7 @@ arm_vfp_cprc_sub_candidate (struct type
|
||||||
|
|
||||||
case TYPE_CODE_ARRAY:
|
case TYPE_CODE_ARRAY:
|
||||||
{
|
{
|
||||||
@ -252,7 +252,7 @@ Index: gdb-7.5.0.20120926/gdb/arm-tdep.c
|
|||||||
unsigned unitlen;
|
unsigned unitlen;
|
||||||
count = arm_vfp_cprc_sub_candidate (TYPE_TARGET_TYPE (t), base_type);
|
count = arm_vfp_cprc_sub_candidate (TYPE_TARGET_TYPE (t), base_type);
|
||||||
if (count == -1)
|
if (count == -1)
|
||||||
@@ -3428,13 +3428,15 @@ arm_vfp_cprc_sub_candidate (struct type
|
@@ -3547,13 +3547,15 @@ arm_vfp_cprc_sub_candidate (struct type
|
||||||
|
|
||||||
case TYPE_CODE_STRUCT:
|
case TYPE_CODE_STRUCT:
|
||||||
{
|
{
|
||||||
@ -271,7 +271,7 @@ Index: gdb-7.5.0.20120926/gdb/arm-tdep.c
|
|||||||
if (sub_count == -1)
|
if (sub_count == -1)
|
||||||
return -1;
|
return -1;
|
||||||
count += sub_count;
|
count += sub_count;
|
||||||
@@ -3454,13 +3456,15 @@ arm_vfp_cprc_sub_candidate (struct type
|
@@ -3573,13 +3575,15 @@ arm_vfp_cprc_sub_candidate (struct type
|
||||||
|
|
||||||
case TYPE_CODE_UNION:
|
case TYPE_CODE_UNION:
|
||||||
{
|
{
|
||||||
@ -290,7 +290,7 @@ Index: gdb-7.5.0.20120926/gdb/arm-tdep.c
|
|||||||
if (sub_count == -1)
|
if (sub_count == -1)
|
||||||
return -1;
|
return -1;
|
||||||
count = (count > sub_count ? count : sub_count);
|
count = (count > sub_count ? count : sub_count);
|
||||||
@@ -3496,7 +3500,7 @@ arm_vfp_call_candidate (struct type *t,
|
@@ -3615,7 +3619,7 @@ arm_vfp_call_candidate (struct type *t,
|
||||||
int *count)
|
int *count)
|
||||||
{
|
{
|
||||||
enum arm_vfp_cprc_base_type b = VFP_CPRC_UNKNOWN;
|
enum arm_vfp_cprc_base_type b = VFP_CPRC_UNKNOWN;
|
||||||
@ -299,7 +299,7 @@ Index: gdb-7.5.0.20120926/gdb/arm-tdep.c
|
|||||||
if (c <= 0 || c > 4)
|
if (c <= 0 || c > 4)
|
||||||
return 0;
|
return 0;
|
||||||
*base_type = b;
|
*base_type = b;
|
||||||
@@ -3577,7 +3581,7 @@ arm_push_dummy_call (struct gdbarch *gdb
|
@@ -3696,7 +3700,7 @@ arm_push_dummy_call (struct gdbarch *gdb
|
||||||
|
|
||||||
for (argnum = 0; argnum < nargs; argnum++)
|
for (argnum = 0; argnum < nargs; argnum++)
|
||||||
{
|
{
|
||||||
@ -308,10 +308,10 @@ Index: gdb-7.5.0.20120926/gdb/arm-tdep.c
|
|||||||
struct type *arg_type;
|
struct type *arg_type;
|
||||||
struct type *target_type;
|
struct type *target_type;
|
||||||
enum type_code typecode;
|
enum type_code typecode;
|
||||||
Index: gdb-7.5.0.20120926/gdb/avr-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/avr-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/avr-tdep.c 2012-05-18 23:02:47.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/avr-tdep.c 2013-01-18 23:36:59.963290385 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/avr-tdep.c 2012-11-07 22:47:57.444984823 +0100
|
+++ gdb-7.5.50.20130118/gdb/avr-tdep.c 2013-01-18 23:37:12.470307574 +0100
|
||||||
@@ -1170,13 +1170,14 @@ avr_dummy_id (struct gdbarch *gdbarch, s
|
@@ -1170,13 +1170,14 @@ avr_dummy_id (struct gdbarch *gdbarch, s
|
||||||
|
|
||||||
struct stack_item
|
struct stack_item
|
||||||
@ -345,10 +345,10 @@ Index: gdb-7.5.0.20120926/gdb/avr-tdep.c
|
|||||||
|
|
||||||
/* Calculate the potential last register needed. */
|
/* Calculate the potential last register needed. */
|
||||||
last_regnum = regnum - (len + (len & 1));
|
last_regnum = regnum - (len + (len & 1));
|
||||||
Index: gdb-7.5.0.20120926/gdb/bfin-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/bfin-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/bfin-tdep.c 2012-11-07 22:09:24.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/bfin-tdep.c 2013-01-18 23:36:59.963290385 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/bfin-tdep.c 2012-11-07 22:47:57.450984814 +0100
|
+++ gdb-7.5.50.20130118/gdb/bfin-tdep.c 2013-01-18 23:37:12.470307574 +0100
|
||||||
@@ -506,7 +506,7 @@ bfin_push_dummy_call (struct gdbarch *gd
|
@@ -506,7 +506,7 @@ bfin_push_dummy_call (struct gdbarch *gd
|
||||||
char buf[4];
|
char buf[4];
|
||||||
int i;
|
int i;
|
||||||
@ -367,10 +367,10 @@ Index: gdb-7.5.0.20120926/gdb/bfin-tdep.c
|
|||||||
|
|
||||||
sp -= container_len;
|
sp -= container_len;
|
||||||
write_memory (sp, value_contents_writeable (args[i]), container_len);
|
write_memory (sp, value_contents_writeable (args[i]), container_len);
|
||||||
Index: gdb-7.5.0.20120926/gdb/cris-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/cris-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/cris-tdep.c 2012-11-07 22:09:24.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/cris-tdep.c 2013-01-18 23:36:59.965290390 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/cris-tdep.c 2012-11-07 22:47:57.453984810 +0100
|
+++ gdb-7.5.50.20130118/gdb/cris-tdep.c 2013-01-18 23:37:12.471307578 +0100
|
||||||
@@ -670,13 +670,13 @@ static CORE_ADDR cris_unwind_sp (struct
|
@@ -670,13 +670,13 @@ static CORE_ADDR cris_unwind_sp (struct
|
||||||
|
|
||||||
struct stack_item
|
struct stack_item
|
||||||
@ -405,11 +405,11 @@ Index: gdb-7.5.0.20120926/gdb/cris-tdep.c
|
|||||||
|
|
||||||
/* How may registers worth of storage do we need for this argument? */
|
/* How may registers worth of storage do we need for this argument? */
|
||||||
reg_demand = (len / 4) + (len % 4 != 0 ? 1 : 0);
|
reg_demand = (len / 4) + (len % 4 != 0 ? 1 : 0);
|
||||||
Index: gdb-7.5.0.20120926/gdb/h8300-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/h8300-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/h8300-tdep.c 2012-11-07 22:09:24.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/h8300-tdep.c 2013-01-18 23:36:59.966290392 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/h8300-tdep.c 2012-11-07 22:47:57.456984806 +0100
|
+++ gdb-7.5.50.20130118/gdb/h8300-tdep.c 2013-01-18 23:37:12.472307583 +0100
|
||||||
@@ -641,7 +641,7 @@ h8300_push_dummy_call (struct gdbarch *g
|
@@ -640,7 +640,7 @@ h8300_push_dummy_call (struct gdbarch *g
|
||||||
int struct_return, CORE_ADDR struct_addr)
|
int struct_return, CORE_ADDR struct_addr)
|
||||||
{
|
{
|
||||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||||
@ -418,7 +418,7 @@ Index: gdb-7.5.0.20120926/gdb/h8300-tdep.c
|
|||||||
int wordsize = BINWORD (gdbarch);
|
int wordsize = BINWORD (gdbarch);
|
||||||
int reg = E_ARG0_REGNUM;
|
int reg = E_ARG0_REGNUM;
|
||||||
int argument;
|
int argument;
|
||||||
@@ -668,11 +668,11 @@ h8300_push_dummy_call (struct gdbarch *g
|
@@ -667,11 +667,11 @@ h8300_push_dummy_call (struct gdbarch *g
|
||||||
{
|
{
|
||||||
struct cleanup *back_to;
|
struct cleanup *back_to;
|
||||||
struct type *type = value_type (args[argument]);
|
struct type *type = value_type (args[argument]);
|
||||||
@ -432,7 +432,7 @@ Index: gdb-7.5.0.20120926/gdb/h8300-tdep.c
|
|||||||
gdb_byte *padded = xmalloc (padded_len);
|
gdb_byte *padded = xmalloc (padded_len);
|
||||||
back_to = make_cleanup (xfree, padded);
|
back_to = make_cleanup (xfree, padded);
|
||||||
|
|
||||||
@@ -701,7 +701,7 @@ h8300_push_dummy_call (struct gdbarch *g
|
@@ -700,7 +700,7 @@ h8300_push_dummy_call (struct gdbarch *g
|
||||||
/* Heavens to Betsy --- it's really going in registers!
|
/* Heavens to Betsy --- it's really going in registers!
|
||||||
Note that on the h8/300s, there are gaps between the
|
Note that on the h8/300s, there are gaps between the
|
||||||
registers in the register file. */
|
registers in the register file. */
|
||||||
@ -441,11 +441,11 @@ Index: gdb-7.5.0.20120926/gdb/h8300-tdep.c
|
|||||||
|
|
||||||
for (offset = 0; offset < padded_len; offset += wordsize)
|
for (offset = 0; offset < padded_len; offset += wordsize)
|
||||||
{
|
{
|
||||||
Index: gdb-7.5.0.20120926/gdb/hppa-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/hppa-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/hppa-tdep.c 2012-11-07 22:09:24.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/hppa-tdep.c 2013-01-18 23:36:59.966290392 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/hppa-tdep.c 2012-11-07 22:48:31.378936083 +0100
|
+++ gdb-7.5.50.20130118/gdb/hppa-tdep.c 2013-01-18 23:37:44.228351370 +0100
|
||||||
@@ -962,7 +962,7 @@ hppa64_push_dummy_call (struct gdbarch *
|
@@ -961,7 +961,7 @@ hppa64_push_dummy_call (struct gdbarch *
|
||||||
{
|
{
|
||||||
struct value *arg = args[i];
|
struct value *arg = args[i];
|
||||||
struct type *type = value_type (arg);
|
struct type *type = value_type (arg);
|
||||||
@ -454,7 +454,7 @@ Index: gdb-7.5.0.20120926/gdb/hppa-tdep.c
|
|||||||
const bfd_byte *valbuf;
|
const bfd_byte *valbuf;
|
||||||
bfd_byte fptrbuf[8];
|
bfd_byte fptrbuf[8];
|
||||||
int regnum;
|
int regnum;
|
||||||
@@ -1157,7 +1157,7 @@ hppa64_return_value (struct gdbarch *gdb
|
@@ -1156,7 +1156,7 @@ hppa64_return_value (struct gdbarch *gdb
|
||||||
struct type *type, struct regcache *regcache,
|
struct type *type, struct regcache *regcache,
|
||||||
gdb_byte *readbuf, const gdb_byte *writebuf)
|
gdb_byte *readbuf, const gdb_byte *writebuf)
|
||||||
{
|
{
|
||||||
@ -462,11 +462,11 @@ Index: gdb-7.5.0.20120926/gdb/hppa-tdep.c
|
|||||||
+ LONGEST len = TYPE_LENGTH (type);
|
+ LONGEST len = TYPE_LENGTH (type);
|
||||||
int regnum, offset;
|
int regnum, offset;
|
||||||
|
|
||||||
if (TYPE_LENGTH (type) > 16)
|
if (len > 16)
|
||||||
Index: gdb-7.5.0.20120926/gdb/i386-darwin-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/i386-darwin-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/i386-darwin-tdep.c 2012-11-07 22:03:57.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/i386-darwin-tdep.c 2013-01-18 23:36:59.967290394 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/i386-darwin-tdep.c 2012-11-07 22:47:57.470984786 +0100
|
+++ gdb-7.5.50.20130118/gdb/i386-darwin-tdep.c 2013-01-18 23:37:12.473307586 +0100
|
||||||
@@ -166,7 +166,7 @@ i386_darwin_push_dummy_call (struct gdba
|
@@ -166,7 +166,7 @@ i386_darwin_push_dummy_call (struct gdba
|
||||||
|
|
||||||
for (write_pass = 0; write_pass < 2; write_pass++)
|
for (write_pass = 0; write_pass < 2; write_pass++)
|
||||||
@ -476,11 +476,11 @@ Index: gdb-7.5.0.20120926/gdb/i386-darwin-tdep.c
|
|||||||
int num_m128 = 0;
|
int num_m128 = 0;
|
||||||
|
|
||||||
if (struct_return)
|
if (struct_return)
|
||||||
Index: gdb-7.5.0.20120926/gdb/i386-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/i386-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/i386-tdep.c 2012-11-07 22:00:42.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/i386-tdep.c 2013-01-18 23:36:59.969290398 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/i386-tdep.c 2012-11-07 22:47:57.474984780 +0100
|
+++ gdb-7.5.50.20130118/gdb/i386-tdep.c 2013-01-18 23:37:12.475307589 +0100
|
||||||
@@ -2358,7 +2358,7 @@ i386_push_dummy_call (struct gdbarch *gd
|
@@ -2407,7 +2407,7 @@ i386_push_dummy_call (struct gdbarch *gd
|
||||||
gdb_byte buf[4];
|
gdb_byte buf[4];
|
||||||
int i;
|
int i;
|
||||||
int write_pass;
|
int write_pass;
|
||||||
@ -489,7 +489,7 @@ Index: gdb-7.5.0.20120926/gdb/i386-tdep.c
|
|||||||
|
|
||||||
/* Determine the total space required for arguments and struct
|
/* Determine the total space required for arguments and struct
|
||||||
return address in a first pass (allowing for 16-byte-aligned
|
return address in a first pass (allowing for 16-byte-aligned
|
||||||
@@ -2366,7 +2366,7 @@ i386_push_dummy_call (struct gdbarch *gd
|
@@ -2415,7 +2415,7 @@ i386_push_dummy_call (struct gdbarch *gd
|
||||||
|
|
||||||
for (write_pass = 0; write_pass < 2; write_pass++)
|
for (write_pass = 0; write_pass < 2; write_pass++)
|
||||||
{
|
{
|
||||||
@ -498,7 +498,7 @@ Index: gdb-7.5.0.20120926/gdb/i386-tdep.c
|
|||||||
|
|
||||||
if (struct_return)
|
if (struct_return)
|
||||||
{
|
{
|
||||||
@@ -2383,7 +2383,7 @@ i386_push_dummy_call (struct gdbarch *gd
|
@@ -2432,7 +2432,7 @@ i386_push_dummy_call (struct gdbarch *gd
|
||||||
|
|
||||||
for (i = 0; i < nargs; i++)
|
for (i = 0; i < nargs; i++)
|
||||||
{
|
{
|
||||||
@ -507,7 +507,7 @@ Index: gdb-7.5.0.20120926/gdb/i386-tdep.c
|
|||||||
|
|
||||||
if (write_pass)
|
if (write_pass)
|
||||||
{
|
{
|
||||||
@@ -2590,7 +2590,7 @@ i386_reg_struct_return_p (struct gdbarch
|
@@ -2639,7 +2639,7 @@ i386_reg_struct_return_p (struct gdbarch
|
||||||
{
|
{
|
||||||
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
|
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
|
||||||
enum type_code code = TYPE_CODE (type);
|
enum type_code code = TYPE_CODE (type);
|
||||||
@ -516,7 +516,7 @@ Index: gdb-7.5.0.20120926/gdb/i386-tdep.c
|
|||||||
|
|
||||||
gdb_assert (code == TYPE_CODE_STRUCT
|
gdb_assert (code == TYPE_CODE_STRUCT
|
||||||
|| code == TYPE_CODE_UNION
|
|| code == TYPE_CODE_UNION
|
||||||
@@ -3042,7 +3042,7 @@ static int
|
@@ -3094,7 +3094,7 @@ static int
|
||||||
i386_convert_register_p (struct gdbarch *gdbarch,
|
i386_convert_register_p (struct gdbarch *gdbarch,
|
||||||
int regnum, struct type *type)
|
int regnum, struct type *type)
|
||||||
{
|
{
|
||||||
@ -525,7 +525,7 @@ Index: gdb-7.5.0.20120926/gdb/i386-tdep.c
|
|||||||
|
|
||||||
/* Values may be spread across multiple registers. Most debugging
|
/* Values may be spread across multiple registers. Most debugging
|
||||||
formats aren't expressive enough to specify the locations, so
|
formats aren't expressive enough to specify the locations, so
|
||||||
@@ -3075,7 +3075,7 @@ i386_register_to_value (struct frame_inf
|
@@ -3127,7 +3127,7 @@ i386_register_to_value (struct frame_inf
|
||||||
int *optimizedp, int *unavailablep)
|
int *optimizedp, int *unavailablep)
|
||||||
{
|
{
|
||||||
struct gdbarch *gdbarch = get_frame_arch (frame);
|
struct gdbarch *gdbarch = get_frame_arch (frame);
|
||||||
@ -534,7 +534,7 @@ Index: gdb-7.5.0.20120926/gdb/i386-tdep.c
|
|||||||
|
|
||||||
if (i386_fp_regnum_p (gdbarch, regnum))
|
if (i386_fp_regnum_p (gdbarch, regnum))
|
||||||
return i387_register_to_value (frame, regnum, type, to,
|
return i387_register_to_value (frame, regnum, type, to,
|
||||||
@@ -3111,7 +3111,7 @@ static void
|
@@ -3163,7 +3163,7 @@ static void
|
||||||
i386_value_to_register (struct frame_info *frame, int regnum,
|
i386_value_to_register (struct frame_info *frame, int regnum,
|
||||||
struct type *type, const gdb_byte *from)
|
struct type *type, const gdb_byte *from)
|
||||||
{
|
{
|
||||||
@ -543,10 +543,10 @@ Index: gdb-7.5.0.20120926/gdb/i386-tdep.c
|
|||||||
|
|
||||||
if (i386_fp_regnum_p (get_frame_arch (frame), regnum))
|
if (i386_fp_regnum_p (get_frame_arch (frame), regnum))
|
||||||
{
|
{
|
||||||
Index: gdb-7.5.0.20120926/gdb/ia64-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/ia64-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/ia64-tdep.c 2012-11-07 22:00:42.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/ia64-tdep.c 2013-01-18 23:36:59.970290400 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/ia64-tdep.c 2012-11-07 22:47:57.491984756 +0100
|
+++ gdb-7.5.50.20130118/gdb/ia64-tdep.c 2013-01-18 23:37:12.476307589 +0100
|
||||||
@@ -3974,8 +3974,10 @@ ia64_push_dummy_call (struct gdbarch *gd
|
@@ -3974,8 +3974,10 @@ ia64_push_dummy_call (struct gdbarch *gd
|
||||||
int argno;
|
int argno;
|
||||||
struct value *arg;
|
struct value *arg;
|
||||||
@ -560,11 +560,11 @@ Index: gdb-7.5.0.20120926/gdb/ia64-tdep.c
|
|||||||
int floatreg;
|
int floatreg;
|
||||||
ULONGEST bsp;
|
ULONGEST bsp;
|
||||||
CORE_ADDR funcdescaddr, pc, global_pointer;
|
CORE_ADDR funcdescaddr, pc, global_pointer;
|
||||||
Index: gdb-7.5.0.20120926/gdb/iq2000-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/iq2000-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/iq2000-tdep.c 2012-05-16 16:35:06.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/iq2000-tdep.c 2013-01-18 23:36:59.970290400 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/iq2000-tdep.c 2012-11-07 22:47:57.509984729 +0100
|
+++ gdb-7.5.50.20130118/gdb/iq2000-tdep.c 2013-01-18 23:37:12.476307589 +0100
|
||||||
@@ -655,8 +655,9 @@ iq2000_push_dummy_call (struct gdbarch *
|
@@ -654,8 +654,9 @@ iq2000_push_dummy_call (struct gdbarch *
|
||||||
const bfd_byte *val;
|
const bfd_byte *val;
|
||||||
bfd_byte buf[4];
|
bfd_byte buf[4];
|
||||||
struct type *type;
|
struct type *type;
|
||||||
@ -576,11 +576,11 @@ Index: gdb-7.5.0.20120926/gdb/iq2000-tdep.c
|
|||||||
/* Used to copy struct arguments into the stack. */
|
/* Used to copy struct arguments into the stack. */
|
||||||
CORE_ADDR struct_ptr;
|
CORE_ADDR struct_ptr;
|
||||||
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/m32r-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/m32r-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/m32r-tdep.c 2012-05-18 23:02:49.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/m32r-tdep.c 2013-01-18 23:36:59.971290402 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/m32r-tdep.c 2012-11-07 22:47:57.516984719 +0100
|
+++ gdb-7.5.50.20130118/gdb/m32r-tdep.c 2013-01-18 23:37:12.476307589 +0100
|
||||||
@@ -696,7 +696,7 @@ m32r_push_dummy_call (struct gdbarch *gd
|
@@ -695,7 +695,7 @@ m32r_push_dummy_call (struct gdbarch *gd
|
||||||
CORE_ADDR regval;
|
CORE_ADDR regval;
|
||||||
gdb_byte *val;
|
gdb_byte *val;
|
||||||
gdb_byte valbuf[MAX_REGISTER_SIZE];
|
gdb_byte valbuf[MAX_REGISTER_SIZE];
|
||||||
@ -589,10 +589,10 @@ Index: gdb-7.5.0.20120926/gdb/m32r-tdep.c
|
|||||||
|
|
||||||
/* First force sp to a 4-byte alignment. */
|
/* First force sp to a 4-byte alignment. */
|
||||||
sp = sp & ~3;
|
sp = sp & ~3;
|
||||||
Index: gdb-7.5.0.20120926/gdb/m68k-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/m68k-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/m68k-tdep.c 2012-11-07 22:02:30.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/m68k-tdep.c 2013-01-18 23:36:59.971290402 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/m68k-tdep.c 2012-11-07 22:49:45.881829032 +0100
|
+++ gdb-7.5.50.20130118/gdb/m68k-tdep.c 2013-01-18 23:39:06.474459041 +0100
|
||||||
@@ -384,7 +384,7 @@ m68k_reg_struct_return_p (struct gdbarch
|
@@ -384,7 +384,7 @@ m68k_reg_struct_return_p (struct gdbarch
|
||||||
{
|
{
|
||||||
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
|
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
|
||||||
@ -600,9 +600,9 @@ Index: gdb-7.5.0.20120926/gdb/m68k-tdep.c
|
|||||||
- int len = TYPE_LENGTH (type);
|
- int len = TYPE_LENGTH (type);
|
||||||
+ LONGEST len = TYPE_LENGTH (type);
|
+ LONGEST len = TYPE_LENGTH (type);
|
||||||
|
|
||||||
gdb_assert (code == TYPE_CODE_STRUCT || code == TYPE_CODE_UNION);
|
gdb_assert (code == TYPE_CODE_STRUCT || code == TYPE_CODE_UNION
|
||||||
|
|| code == TYPE_CODE_COMPLEX);
|
||||||
@@ -513,9 +513,9 @@ m68k_push_dummy_call (struct gdbarch *gd
|
@@ -516,9 +516,9 @@ m68k_push_dummy_call (struct gdbarch *gd
|
||||||
for (i = nargs - 1; i >= 0; i--)
|
for (i = nargs - 1; i >= 0; i--)
|
||||||
{
|
{
|
||||||
struct type *value_type = value_enclosing_type (args[i]);
|
struct type *value_type = value_enclosing_type (args[i]);
|
||||||
@ -615,10 +615,10 @@ Index: gdb-7.5.0.20120926/gdb/m68k-tdep.c
|
|||||||
|
|
||||||
/* Non-scalars bigger than 4 bytes are left aligned, others are
|
/* Non-scalars bigger than 4 bytes are left aligned, others are
|
||||||
right aligned. */
|
right aligned. */
|
||||||
Index: gdb-7.5.0.20120926/gdb/m88k-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/m88k-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/m88k-tdep.c 2012-05-16 16:35:06.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/m88k-tdep.c 2013-01-18 23:36:59.971290402 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/m88k-tdep.c 2012-11-07 22:47:57.520984714 +0100
|
+++ gdb-7.5.50.20130118/gdb/m88k-tdep.c 2013-01-18 23:37:12.477307590 +0100
|
||||||
@@ -260,13 +260,13 @@ m88k_store_arguments (struct regcache *r
|
@@ -260,13 +260,13 @@ m88k_store_arguments (struct regcache *r
|
||||||
{
|
{
|
||||||
struct gdbarch *gdbarch = get_regcache_arch (regcache);
|
struct gdbarch *gdbarch = get_regcache_arch (regcache);
|
||||||
@ -646,10 +646,10 @@ Index: gdb-7.5.0.20120926/gdb/m88k-tdep.c
|
|||||||
|
|
||||||
if (m88k_in_register_p (type))
|
if (m88k_in_register_p (type))
|
||||||
{
|
{
|
||||||
Index: gdb-7.5.0.20120926/gdb/mep-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/mep-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/mep-tdep.c 2012-11-07 22:03:57.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/mep-tdep.c 2013-01-18 23:36:59.972290404 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/mep-tdep.c 2012-11-07 22:47:57.522984712 +0100
|
+++ gdb-7.5.50.20130118/gdb/mep-tdep.c 2013-01-18 23:37:12.477307590 +0100
|
||||||
@@ -2279,7 +2279,7 @@ push_large_arguments (CORE_ADDR sp, int
|
@@ -2279,7 +2279,7 @@ push_large_arguments (CORE_ADDR sp, int
|
||||||
|
|
||||||
for (i = 0; i < argc; i++)
|
for (i = 0; i < argc; i++)
|
||||||
@ -659,10 +659,10 @@ Index: gdb-7.5.0.20120926/gdb/mep-tdep.c
|
|||||||
|
|
||||||
if (arg_len > MEP_GPR_SIZE)
|
if (arg_len > MEP_GPR_SIZE)
|
||||||
{
|
{
|
||||||
Index: gdb-7.5.0.20120926/gdb/mips-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/mips-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/mips-tdep.c 2012-11-07 22:02:30.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/mips-tdep.c 2013-01-18 23:36:59.975290414 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/mips-tdep.c 2012-11-07 22:47:57.534984694 +0100
|
+++ gdb-7.5.50.20130118/gdb/mips-tdep.c 2013-01-18 23:37:12.479307599 +0100
|
||||||
@@ -396,7 +396,7 @@ static void
|
@@ -396,7 +396,7 @@ static void
|
||||||
mips_xfer_register (struct gdbarch *gdbarch, struct regcache *regcache,
|
mips_xfer_register (struct gdbarch *gdbarch, struct regcache *regcache,
|
||||||
int reg_num, int length,
|
int reg_num, int length,
|
||||||
@ -683,7 +683,7 @@ Index: gdb-7.5.0.20120926/gdb/mips-tdep.c
|
|||||||
if (mips_debug && out != NULL)
|
if (mips_debug && out != NULL)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
@@ -4295,13 +4295,13 @@ mips_eabi_push_dummy_call (struct gdbarc
|
@@ -4345,13 +4345,13 @@ mips_eabi_push_dummy_call (struct gdbarc
|
||||||
gdb_byte valbuf[MAX_REGISTER_SIZE];
|
gdb_byte valbuf[MAX_REGISTER_SIZE];
|
||||||
struct value *arg = args[argnum];
|
struct value *arg = args[argnum];
|
||||||
struct type *arg_type = check_typedef (value_type (arg));
|
struct type *arg_type = check_typedef (value_type (arg));
|
||||||
@ -700,7 +700,7 @@ Index: gdb-7.5.0.20120926/gdb/mips-tdep.c
|
|||||||
|
|
||||||
/* Function pointer arguments to mips16 code need to be made into
|
/* Function pointer arguments to mips16 code need to be made into
|
||||||
mips16 pointers. */
|
mips16 pointers. */
|
||||||
@@ -4586,7 +4586,7 @@ mips_eabi_return_value (struct gdbarch *
|
@@ -4636,7 +4636,7 @@ mips_eabi_return_value (struct gdbarch *
|
||||||
|
|
||||||
static int
|
static int
|
||||||
mips_n32n64_fp_arg_chunk_p (struct gdbarch *gdbarch, struct type *arg_type,
|
mips_n32n64_fp_arg_chunk_p (struct gdbarch *gdbarch, struct type *arg_type,
|
||||||
@ -709,7 +709,7 @@ Index: gdb-7.5.0.20120926/gdb/mips-tdep.c
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
@@ -4601,7 +4601,7 @@ mips_n32n64_fp_arg_chunk_p (struct gdbar
|
@@ -4651,7 +4651,7 @@ mips_n32n64_fp_arg_chunk_p (struct gdbar
|
||||||
|
|
||||||
for (i = 0; i < TYPE_NFIELDS (arg_type); i++)
|
for (i = 0; i < TYPE_NFIELDS (arg_type); i++)
|
||||||
{
|
{
|
||||||
@ -718,7 +718,7 @@ Index: gdb-7.5.0.20120926/gdb/mips-tdep.c
|
|||||||
struct type *field_type;
|
struct type *field_type;
|
||||||
|
|
||||||
/* We're only looking at normal fields. */
|
/* We're only looking at normal fields. */
|
||||||
@@ -4643,7 +4643,7 @@ mips_n32n64_push_dummy_call (struct gdba
|
@@ -4693,7 +4693,7 @@ mips_n32n64_push_dummy_call (struct gdba
|
||||||
int argreg;
|
int argreg;
|
||||||
int float_argreg;
|
int float_argreg;
|
||||||
int argnum;
|
int argnum;
|
||||||
@ -727,7 +727,7 @@ Index: gdb-7.5.0.20120926/gdb/mips-tdep.c
|
|||||||
int stack_offset = 0;
|
int stack_offset = 0;
|
||||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||||
CORE_ADDR func_addr = find_function_addr (function, NULL);
|
CORE_ADDR func_addr = find_function_addr (function, NULL);
|
||||||
@@ -4994,11 +4994,11 @@ mips_n32n64_return_value (struct gdbarch
|
@@ -5044,11 +5044,11 @@ mips_n32n64_return_value (struct gdbarch
|
||||||
: MIPS_V0_REGNUM);
|
: MIPS_V0_REGNUM);
|
||||||
field < TYPE_NFIELDS (type); field++, regnum += 2)
|
field < TYPE_NFIELDS (type); field++, regnum += 2)
|
||||||
{
|
{
|
||||||
@ -743,7 +743,7 @@ Index: gdb-7.5.0.20120926/gdb/mips-tdep.c
|
|||||||
if (TYPE_LENGTH (TYPE_FIELD_TYPE (type, field)) == 16)
|
if (TYPE_LENGTH (TYPE_FIELD_TYPE (type, field)) == 16)
|
||||||
{
|
{
|
||||||
/* A 16-byte long double field goes in two consecutive
|
/* A 16-byte long double field goes in two consecutive
|
||||||
@@ -5040,8 +5040,8 @@ mips_n32n64_return_value (struct gdbarch
|
@@ -5090,8 +5090,8 @@ mips_n32n64_return_value (struct gdbarch
|
||||||
if (offset + xfer > TYPE_LENGTH (type))
|
if (offset + xfer > TYPE_LENGTH (type))
|
||||||
xfer = TYPE_LENGTH (type) - offset;
|
xfer = TYPE_LENGTH (type) - offset;
|
||||||
if (mips_debug)
|
if (mips_debug)
|
||||||
@ -754,7 +754,7 @@ Index: gdb-7.5.0.20120926/gdb/mips-tdep.c
|
|||||||
mips_xfer_register (gdbarch, regcache,
|
mips_xfer_register (gdbarch, regcache,
|
||||||
gdbarch_num_regs (gdbarch) + regnum,
|
gdbarch_num_regs (gdbarch) + regnum,
|
||||||
xfer, BFD_ENDIAN_UNKNOWN, readbuf, writebuf,
|
xfer, BFD_ENDIAN_UNKNOWN, readbuf, writebuf,
|
||||||
@@ -5099,7 +5099,7 @@ mips_o32_push_dummy_call (struct gdbarch
|
@@ -5149,7 +5149,7 @@ mips_o32_push_dummy_call (struct gdbarch
|
||||||
int argreg;
|
int argreg;
|
||||||
int float_argreg;
|
int float_argreg;
|
||||||
int argnum;
|
int argnum;
|
||||||
@ -763,7 +763,7 @@ Index: gdb-7.5.0.20120926/gdb/mips-tdep.c
|
|||||||
int stack_offset = 0;
|
int stack_offset = 0;
|
||||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||||
CORE_ADDR func_addr = find_function_addr (function, NULL);
|
CORE_ADDR func_addr = find_function_addr (function, NULL);
|
||||||
@@ -5163,13 +5163,13 @@ mips_o32_push_dummy_call (struct gdbarch
|
@@ -5213,13 +5213,13 @@ mips_o32_push_dummy_call (struct gdbarch
|
||||||
const gdb_byte *val;
|
const gdb_byte *val;
|
||||||
struct value *arg = args[argnum];
|
struct value *arg = args[argnum];
|
||||||
struct type *arg_type = check_typedef (value_type (arg));
|
struct type *arg_type = check_typedef (value_type (arg));
|
||||||
@ -780,7 +780,7 @@ Index: gdb-7.5.0.20120926/gdb/mips-tdep.c
|
|||||||
|
|
||||||
val = value_contents (arg);
|
val = value_contents (arg);
|
||||||
|
|
||||||
@@ -5627,8 +5627,8 @@ mips_o64_push_dummy_call (struct gdbarch
|
@@ -5677,8 +5677,8 @@ mips_o64_push_dummy_call (struct gdbarch
|
||||||
int argreg;
|
int argreg;
|
||||||
int float_argreg;
|
int float_argreg;
|
||||||
int argnum;
|
int argnum;
|
||||||
@ -791,7 +791,7 @@ Index: gdb-7.5.0.20120926/gdb/mips-tdep.c
|
|||||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||||
CORE_ADDR func_addr = find_function_addr (function, NULL);
|
CORE_ADDR func_addr = find_function_addr (function, NULL);
|
||||||
|
|
||||||
@@ -5689,13 +5689,13 @@ mips_o64_push_dummy_call (struct gdbarch
|
@@ -5739,13 +5739,13 @@ mips_o64_push_dummy_call (struct gdbarch
|
||||||
gdb_byte valbuf[MAX_REGISTER_SIZE];
|
gdb_byte valbuf[MAX_REGISTER_SIZE];
|
||||||
struct value *arg = args[argnum];
|
struct value *arg = args[argnum];
|
||||||
struct type *arg_type = check_typedef (value_type (arg));
|
struct type *arg_type = check_typedef (value_type (arg));
|
||||||
@ -808,10 +808,10 @@ Index: gdb-7.5.0.20120926/gdb/mips-tdep.c
|
|||||||
|
|
||||||
val = value_contents (arg);
|
val = value_contents (arg);
|
||||||
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/mn10300-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/mn10300-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/mn10300-tdep.c 2012-05-18 23:02:49.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/mn10300-tdep.c 2013-01-18 23:36:59.976290416 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/mn10300-tdep.c 2012-11-07 22:47:57.542984682 +0100
|
+++ gdb-7.5.50.20130118/gdb/mn10300-tdep.c 2013-01-18 23:37:12.479307599 +0100
|
||||||
@@ -1228,7 +1228,7 @@ mn10300_push_dummy_call (struct gdbarch
|
@@ -1228,7 +1228,7 @@ mn10300_push_dummy_call (struct gdbarch
|
||||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||||
const int push_size = register_size (gdbarch, E_PC_REGNUM);
|
const int push_size = register_size (gdbarch, E_PC_REGNUM);
|
||||||
@ -821,10 +821,10 @@ Index: gdb-7.5.0.20120926/gdb/mn10300-tdep.c
|
|||||||
int stack_offset = 0;
|
int stack_offset = 0;
|
||||||
int argnum;
|
int argnum;
|
||||||
char *val, valbuf[MAX_REGISTER_SIZE];
|
char *val, valbuf[MAX_REGISTER_SIZE];
|
||||||
Index: gdb-7.5.0.20120926/gdb/mt-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/mt-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/mt-tdep.c 2012-11-07 22:00:44.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/mt-tdep.c 2013-01-18 23:36:59.976290416 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/mt-tdep.c 2012-11-07 22:47:57.544984680 +0100
|
+++ gdb-7.5.50.20130118/gdb/mt-tdep.c 2013-01-18 23:37:12.479307599 +0100
|
||||||
@@ -783,9 +783,9 @@ mt_push_dummy_call (struct gdbarch *gdba
|
@@ -783,9 +783,9 @@ mt_push_dummy_call (struct gdbarch *gdba
|
||||||
gdb_byte buf[MT_MAX_STRUCT_SIZE];
|
gdb_byte buf[MT_MAX_STRUCT_SIZE];
|
||||||
int argreg = MT_1ST_ARGREG;
|
int argreg = MT_1ST_ARGREG;
|
||||||
@ -837,11 +837,11 @@ Index: gdb-7.5.0.20120926/gdb/mt-tdep.c
|
|||||||
int i, j;
|
int i, j;
|
||||||
|
|
||||||
/* First handle however many args we can fit into MT_1ST_ARGREG thru
|
/* First handle however many args we can fit into MT_1ST_ARGREG thru
|
||||||
Index: gdb-7.5.0.20120926/gdb/ppc-sysv-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/ppc-sysv-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/ppc-sysv-tdep.c 2012-05-18 23:02:49.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/ppc-sysv-tdep.c 2013-01-18 23:36:59.977290417 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/ppc-sysv-tdep.c 2012-11-07 22:47:57.551984669 +0100
|
+++ gdb-7.5.50.20130118/gdb/ppc-sysv-tdep.c 2013-01-18 23:37:12.480307602 +0100
|
||||||
@@ -69,7 +69,7 @@ ppc_sysv_abi_push_dummy_call (struct gdb
|
@@ -68,7 +68,7 @@ ppc_sysv_abi_push_dummy_call (struct gdb
|
||||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||||
int opencl_abi = ppc_sysv_use_opencl_abi (value_type (function));
|
int opencl_abi = ppc_sysv_use_opencl_abi (value_type (function));
|
||||||
ULONGEST saved_sp;
|
ULONGEST saved_sp;
|
||||||
@ -850,7 +850,7 @@ Index: gdb-7.5.0.20120926/gdb/ppc-sysv-tdep.c
|
|||||||
int write_pass;
|
int write_pass;
|
||||||
|
|
||||||
gdb_assert (tdep->wordsize == 4);
|
gdb_assert (tdep->wordsize == 4);
|
||||||
@@ -100,9 +100,9 @@ ppc_sysv_abi_push_dummy_call (struct gdb
|
@@ -99,9 +99,9 @@ ppc_sysv_abi_push_dummy_call (struct gdb
|
||||||
/* Next available vector register for vector arguments. */
|
/* Next available vector register for vector arguments. */
|
||||||
int vreg = 2;
|
int vreg = 2;
|
||||||
/* Arguments start above the "LR save word" and "Back chain". */
|
/* Arguments start above the "LR save word" and "Back chain". */
|
||||||
@ -862,7 +862,7 @@ Index: gdb-7.5.0.20120926/gdb/ppc-sysv-tdep.c
|
|||||||
|
|
||||||
/* If the function is returning a `struct', then the first word
|
/* If the function is returning a `struct', then the first word
|
||||||
(which will be passed in r3) is used for struct return
|
(which will be passed in r3) is used for struct return
|
||||||
@@ -121,7 +121,7 @@ ppc_sysv_abi_push_dummy_call (struct gdb
|
@@ -120,7 +120,7 @@ ppc_sysv_abi_push_dummy_call (struct gdb
|
||||||
{
|
{
|
||||||
struct value *arg = args[argno];
|
struct value *arg = args[argno];
|
||||||
struct type *type = check_typedef (value_type (arg));
|
struct type *type = check_typedef (value_type (arg));
|
||||||
@ -871,7 +871,7 @@ Index: gdb-7.5.0.20120926/gdb/ppc-sysv-tdep.c
|
|||||||
const bfd_byte *val = value_contents (arg);
|
const bfd_byte *val = value_contents (arg);
|
||||||
|
|
||||||
if (TYPE_CODE (type) == TYPE_CODE_FLT && len <= 8
|
if (TYPE_CODE (type) == TYPE_CODE_FLT && len <= 8
|
||||||
@@ -1557,14 +1557,14 @@ ppc64_sysv_abi_push_dummy_call (struct g
|
@@ -1556,14 +1556,14 @@ ppc64_sysv_abi_push_dummy_call (struct g
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -888,7 +888,7 @@ Index: gdb-7.5.0.20120926/gdb/ppc-sysv-tdep.c
|
|||||||
if (len > tdep->wordsize)
|
if (len > tdep->wordsize)
|
||||||
len = tdep->wordsize;
|
len = tdep->wordsize;
|
||||||
memset (regval, 0, sizeof regval);
|
memset (regval, 0, sizeof regval);
|
||||||
@@ -1592,7 +1592,7 @@ ppc64_sysv_abi_push_dummy_call (struct g
|
@@ -1591,7 +1591,7 @@ ppc64_sysv_abi_push_dummy_call (struct g
|
||||||
register. Work around this by always writing the
|
register. Work around this by always writing the
|
||||||
value to memory. Fortunately, doing this
|
value to memory. Fortunately, doing this
|
||||||
simplifies the code. */
|
simplifies the code. */
|
||||||
@ -897,10 +897,10 @@ Index: gdb-7.5.0.20120926/gdb/ppc-sysv-tdep.c
|
|||||||
if (len < tdep->wordsize)
|
if (len < tdep->wordsize)
|
||||||
write_memory (gparam + tdep->wordsize - len, val, len);
|
write_memory (gparam + tdep->wordsize - len, val, len);
|
||||||
else
|
else
|
||||||
Index: gdb-7.5.0.20120926/gdb/rl78-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/rl78-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/rl78-tdep.c 2012-05-18 23:02:50.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/rl78-tdep.c 2013-01-18 23:36:59.977290417 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/rl78-tdep.c 2012-11-07 22:47:57.557984660 +0100
|
+++ gdb-7.5.50.20130118/gdb/rl78-tdep.c 2013-01-18 23:37:12.480307602 +0100
|
||||||
@@ -1019,8 +1019,8 @@ rl78_push_dummy_call (struct gdbarch *gd
|
@@ -1019,8 +1019,8 @@ rl78_push_dummy_call (struct gdbarch *gd
|
||||||
for (i = nargs - 1; i >= 0; i--)
|
for (i = nargs - 1; i >= 0; i--)
|
||||||
{
|
{
|
||||||
@ -912,11 +912,11 @@ Index: gdb-7.5.0.20120926/gdb/rl78-tdep.c
|
|||||||
|
|
||||||
sp -= container_len;
|
sp -= container_len;
|
||||||
write_memory (rl78_make_data_address (sp),
|
write_memory (rl78_make_data_address (sp),
|
||||||
Index: gdb-7.5.0.20120926/gdb/rs6000-aix-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/rs6000-aix-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/rs6000-aix-tdep.c 2012-05-18 23:02:50.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/rs6000-aix-tdep.c 2013-01-18 23:36:59.978290418 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/rs6000-aix-tdep.c 2012-11-07 22:47:57.560984657 +0100
|
+++ gdb-7.5.50.20130118/gdb/rs6000-aix-tdep.c 2013-01-18 23:37:12.480307602 +0100
|
||||||
@@ -197,9 +197,9 @@ rs6000_push_dummy_call (struct gdbarch *
|
@@ -198,9 +198,9 @@ rs6000_push_dummy_call (struct gdbarch *
|
||||||
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
|
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
|
||||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||||
int ii;
|
int ii;
|
||||||
@ -928,7 +928,7 @@ Index: gdb-7.5.0.20120926/gdb/rs6000-aix-tdep.c
|
|||||||
gdb_byte tmp_buffer[50];
|
gdb_byte tmp_buffer[50];
|
||||||
int f_argno = 0; /* current floating point argno */
|
int f_argno = 0; /* current floating point argno */
|
||||||
int wordsize = gdbarch_tdep (gdbarch)->wordsize;
|
int wordsize = gdbarch_tdep (gdbarch)->wordsize;
|
||||||
@@ -327,7 +327,7 @@ ran_out_of_registers_for_arguments:
|
@@ -328,7 +328,7 @@ ran_out_of_registers_for_arguments:
|
||||||
|
|
||||||
if ((argno < nargs) || argbytes)
|
if ((argno < nargs) || argbytes)
|
||||||
{
|
{
|
||||||
@ -937,11 +937,11 @@ Index: gdb-7.5.0.20120926/gdb/rs6000-aix-tdep.c
|
|||||||
|
|
||||||
if (argbytes)
|
if (argbytes)
|
||||||
{
|
{
|
||||||
Index: gdb-7.5.0.20120926/gdb/s390-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/s390-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/s390-tdep.c 2012-11-07 22:03:57.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/s390-tdep.c 2013-01-18 23:36:59.979290420 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/s390-tdep.c 2012-11-07 22:47:57.569984644 +0100
|
+++ gdb-7.5.50.20130118/gdb/s390-tdep.c 2013-01-18 23:37:12.480307602 +0100
|
||||||
@@ -2481,7 +2481,7 @@ is_float_like (struct type *type)
|
@@ -2482,7 +2482,7 @@ is_float_like (struct type *type)
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -950,7 +950,7 @@ Index: gdb-7.5.0.20120926/gdb/s390-tdep.c
|
|||||||
{
|
{
|
||||||
return ((n & (n - 1)) == 0);
|
return ((n & (n - 1)) == 0);
|
||||||
}
|
}
|
||||||
@@ -2667,7 +2667,7 @@ s390_push_dummy_call (struct gdbarch *gd
|
@@ -2668,7 +2668,7 @@ s390_push_dummy_call (struct gdbarch *gd
|
||||||
{
|
{
|
||||||
struct value *arg = args[i];
|
struct value *arg = args[i];
|
||||||
struct type *type = check_typedef (value_type (arg));
|
struct type *type = check_typedef (value_type (arg));
|
||||||
@ -959,10 +959,10 @@ Index: gdb-7.5.0.20120926/gdb/s390-tdep.c
|
|||||||
|
|
||||||
if (s390_function_arg_pass_by_reference (type))
|
if (s390_function_arg_pass_by_reference (type))
|
||||||
{
|
{
|
||||||
Index: gdb-7.5.0.20120926/gdb/score-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/score-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/score-tdep.c 2012-05-18 23:02:50.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/score-tdep.c 2013-01-18 23:36:59.979290420 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/score-tdep.c 2012-11-07 22:47:57.571984640 +0100
|
+++ gdb-7.5.50.20130118/gdb/score-tdep.c 2013-01-18 23:37:12.481307604 +0100
|
||||||
@@ -515,7 +515,7 @@ score_push_dummy_call (struct gdbarch *g
|
@@ -515,7 +515,7 @@ score_push_dummy_call (struct gdbarch *g
|
||||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||||
int argnum;
|
int argnum;
|
||||||
@ -972,11 +972,11 @@ Index: gdb-7.5.0.20120926/gdb/score-tdep.c
|
|||||||
CORE_ADDR stack_offset = 0;
|
CORE_ADDR stack_offset = 0;
|
||||||
CORE_ADDR addr = 0;
|
CORE_ADDR addr = 0;
|
||||||
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/sh-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/sh-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/sh-tdep.c 2012-11-07 22:00:44.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/sh-tdep.c 2013-01-18 23:36:59.980290423 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/sh-tdep.c 2012-11-07 22:47:57.579984628 +0100
|
+++ gdb-7.5.50.20130118/gdb/sh-tdep.c 2013-01-18 23:37:12.481307604 +0100
|
||||||
@@ -805,7 +805,7 @@ sh_skip_prologue (struct gdbarch *gdbarc
|
@@ -807,7 +807,7 @@ sh_skip_prologue (struct gdbarch *gdbarc
|
||||||
static int
|
static int
|
||||||
sh_use_struct_convention (int renesas_abi, struct type *type)
|
sh_use_struct_convention (int renesas_abi, struct type *type)
|
||||||
{
|
{
|
||||||
@ -985,7 +985,7 @@ Index: gdb-7.5.0.20120926/gdb/sh-tdep.c
|
|||||||
int nelem = TYPE_NFIELDS (type);
|
int nelem = TYPE_NFIELDS (type);
|
||||||
|
|
||||||
/* The Renesas ABI returns aggregate types always on stack. */
|
/* The Renesas ABI returns aggregate types always on stack. */
|
||||||
@@ -907,7 +907,7 @@ sh_frame_align (struct gdbarch *ignore,
|
@@ -909,7 +909,7 @@ sh_frame_align (struct gdbarch *ignore,
|
||||||
|
|
||||||
/* Helper function to justify value in register according to endianess. */
|
/* Helper function to justify value in register according to endianess. */
|
||||||
static char *
|
static char *
|
||||||
@ -994,7 +994,7 @@ Index: gdb-7.5.0.20120926/gdb/sh-tdep.c
|
|||||||
{
|
{
|
||||||
static char valbuf[4];
|
static char valbuf[4];
|
||||||
|
|
||||||
@@ -1067,7 +1067,8 @@ sh_push_dummy_call_fpu (struct gdbarch *
|
@@ -1069,7 +1069,8 @@ sh_push_dummy_call_fpu (struct gdbarch *
|
||||||
struct type *type;
|
struct type *type;
|
||||||
CORE_ADDR regval;
|
CORE_ADDR regval;
|
||||||
char *val;
|
char *val;
|
||||||
@ -1004,7 +1004,7 @@ Index: gdb-7.5.0.20120926/gdb/sh-tdep.c
|
|||||||
int pass_on_stack = 0;
|
int pass_on_stack = 0;
|
||||||
int treat_as_flt;
|
int treat_as_flt;
|
||||||
int last_reg_arg = INT_MAX;
|
int last_reg_arg = INT_MAX;
|
||||||
@@ -1208,7 +1209,8 @@ sh_push_dummy_call_nofpu (struct gdbarch
|
@@ -1210,7 +1211,8 @@ sh_push_dummy_call_nofpu (struct gdbarch
|
||||||
struct type *type;
|
struct type *type;
|
||||||
CORE_ADDR regval;
|
CORE_ADDR regval;
|
||||||
char *val;
|
char *val;
|
||||||
@ -1014,10 +1014,10 @@ Index: gdb-7.5.0.20120926/gdb/sh-tdep.c
|
|||||||
int pass_on_stack = 0;
|
int pass_on_stack = 0;
|
||||||
int last_reg_arg = INT_MAX;
|
int last_reg_arg = INT_MAX;
|
||||||
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/sh64-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/sh64-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/sh64-tdep.c 2012-06-06 20:03:53.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/sh64-tdep.c 2013-01-18 23:36:59.980290423 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/sh64-tdep.c 2012-11-07 22:47:57.582984625 +0100
|
+++ gdb-7.5.50.20130118/gdb/sh64-tdep.c 2013-01-18 23:37:12.482307606 +0100
|
||||||
@@ -1058,7 +1058,7 @@ sh64_push_dummy_call (struct gdbarch *gd
|
@@ -1058,7 +1058,7 @@ sh64_push_dummy_call (struct gdbarch *gd
|
||||||
CORE_ADDR struct_addr)
|
CORE_ADDR struct_addr)
|
||||||
{
|
{
|
||||||
@ -1036,11 +1036,11 @@ Index: gdb-7.5.0.20120926/gdb/sh64-tdep.c
|
|||||||
int argreg_size;
|
int argreg_size;
|
||||||
int fp_args[12];
|
int fp_args[12];
|
||||||
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/sparc-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/sparc-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/sparc-tdep.c 2012-11-07 22:00:43.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/sparc-tdep.c 2013-01-18 23:36:59.981290427 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/sparc-tdep.c 2012-11-07 22:47:57.593984609 +0100
|
+++ gdb-7.5.50.20130118/gdb/sparc-tdep.c 2013-01-18 23:37:12.482307606 +0100
|
||||||
@@ -470,7 +470,7 @@ sparc32_store_arguments (struct regcache
|
@@ -471,7 +471,7 @@ sparc32_store_arguments (struct regcache
|
||||||
for (i = 0; i < nargs; i++)
|
for (i = 0; i < nargs; i++)
|
||||||
{
|
{
|
||||||
struct type *type = value_type (args[i]);
|
struct type *type = value_type (args[i]);
|
||||||
@ -1049,10 +1049,10 @@ Index: gdb-7.5.0.20120926/gdb/sparc-tdep.c
|
|||||||
|
|
||||||
if (sparc_structure_or_union_p (type)
|
if (sparc_structure_or_union_p (type)
|
||||||
|| (sparc_floating_p (type) && len == 16)
|
|| (sparc_floating_p (type) && len == 16)
|
||||||
Index: gdb-7.5.0.20120926/gdb/sparc64-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/sparc64-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/sparc64-tdep.c 2012-05-16 16:35:07.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/sparc64-tdep.c 2013-01-18 23:36:59.982290430 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/sparc64-tdep.c 2012-11-07 22:47:57.595984605 +0100
|
+++ gdb-7.5.50.20130118/gdb/sparc64-tdep.c 2013-01-18 23:37:12.482307606 +0100
|
||||||
@@ -639,7 +639,8 @@ sparc64_16_byte_align_p (struct type *ty
|
@@ -639,7 +639,8 @@ sparc64_16_byte_align_p (struct type *ty
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -1108,11 +1108,11 @@ Index: gdb-7.5.0.20120926/gdb/sparc64-tdep.c
|
|||||||
int regnum = -1;
|
int regnum = -1;
|
||||||
gdb_byte buf[16];
|
gdb_byte buf[16];
|
||||||
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/spu-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/spu-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/spu-tdep.c 2012-11-07 22:09:24.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/spu-tdep.c 2013-01-18 23:36:59.982290430 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/spu-tdep.c 2012-11-07 22:47:57.598984602 +0100
|
+++ gdb-7.5.50.20130118/gdb/spu-tdep.c 2013-01-18 23:37:12.483307607 +0100
|
||||||
@@ -1372,7 +1372,7 @@ spu_push_dummy_call (struct gdbarch *gdb
|
@@ -1373,7 +1373,7 @@ spu_push_dummy_call (struct gdbarch *gdb
|
||||||
struct value *arg = args[i];
|
struct value *arg = args[i];
|
||||||
struct type *type = check_typedef (value_type (arg));
|
struct type *type = check_typedef (value_type (arg));
|
||||||
const gdb_byte *contents = value_contents (arg);
|
const gdb_byte *contents = value_contents (arg);
|
||||||
@ -1121,7 +1121,7 @@ Index: gdb-7.5.0.20120926/gdb/spu-tdep.c
|
|||||||
|
|
||||||
/* If the argument doesn't wholly fit into registers, it and
|
/* If the argument doesn't wholly fit into registers, it and
|
||||||
all subsequent arguments go to the stack. */
|
all subsequent arguments go to the stack. */
|
||||||
@@ -1404,7 +1404,7 @@ spu_push_dummy_call (struct gdbarch *gdb
|
@@ -1405,7 +1405,7 @@ spu_push_dummy_call (struct gdbarch *gdb
|
||||||
{
|
{
|
||||||
struct value *arg = args[i];
|
struct value *arg = args[i];
|
||||||
struct type *type = check_typedef (value_type (arg));
|
struct type *type = check_typedef (value_type (arg));
|
||||||
@ -1130,20 +1130,20 @@ Index: gdb-7.5.0.20120926/gdb/spu-tdep.c
|
|||||||
int preferred_slot;
|
int preferred_slot;
|
||||||
|
|
||||||
if (spu_scalar_value_p (type))
|
if (spu_scalar_value_p (type))
|
||||||
Index: gdb-7.5.0.20120926/gdb/tic6x-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/tic6x-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/tic6x-tdep.c 2012-06-08 16:24:57.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/tic6x-tdep.c 2013-01-18 23:36:59.983290432 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/tic6x-tdep.c 2012-11-07 22:50:31.792763178 +0100
|
+++ gdb-7.5.50.20130118/gdb/tic6x-tdep.c 2013-01-18 23:39:27.770484516 +0100
|
||||||
@@ -918,7 +918,7 @@ tic6x_push_dummy_call (struct gdbarch *g
|
@@ -896,7 +896,7 @@ tic6x_push_dummy_call (struct gdbarch *g
|
||||||
|
int argreg = 0;
|
||||||
int argnum;
|
int argnum;
|
||||||
int len = 0;
|
|
||||||
int stack_offset = 4;
|
int stack_offset = 4;
|
||||||
- int references_offset = 4;
|
- int references_offset = 4;
|
||||||
+ LONGEST references_offset = 4;
|
+ LONGEST references_offset = 4;
|
||||||
CORE_ADDR func_addr = find_function_addr (function, NULL);
|
CORE_ADDR func_addr = find_function_addr (function, NULL);
|
||||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||||
struct type *func_type = value_type (function);
|
struct type *func_type = value_type (function);
|
||||||
@@ -952,7 +952,7 @@ tic6x_push_dummy_call (struct gdbarch *g
|
@@ -930,7 +930,7 @@ tic6x_push_dummy_call (struct gdbarch *g
|
||||||
/* Now make space on the stack for the args. */
|
/* Now make space on the stack for the args. */
|
||||||
for (argnum = 0; argnum < nargs; argnum++)
|
for (argnum = 0; argnum < nargs; argnum++)
|
||||||
{
|
{
|
||||||
@ -1152,7 +1152,7 @@ Index: gdb-7.5.0.20120926/gdb/tic6x-tdep.c
|
|||||||
if (argnum >= 10 - argreg)
|
if (argnum >= 10 - argreg)
|
||||||
references_offset += len;
|
references_offset += len;
|
||||||
stack_offset += len;
|
stack_offset += len;
|
||||||
@@ -971,7 +971,7 @@ tic6x_push_dummy_call (struct gdbarch *g
|
@@ -949,7 +949,7 @@ tic6x_push_dummy_call (struct gdbarch *g
|
||||||
const gdb_byte *val;
|
const gdb_byte *val;
|
||||||
struct value *arg = args[argnum];
|
struct value *arg = args[argnum];
|
||||||
struct type *arg_type = check_typedef (value_type (arg));
|
struct type *arg_type = check_typedef (value_type (arg));
|
||||||
@ -1161,7 +1161,7 @@ Index: gdb-7.5.0.20120926/gdb/tic6x-tdep.c
|
|||||||
enum type_code typecode = TYPE_CODE (arg_type);
|
enum type_code typecode = TYPE_CODE (arg_type);
|
||||||
|
|
||||||
val = value_contents (arg);
|
val = value_contents (arg);
|
||||||
@@ -1131,7 +1131,8 @@ tic6x_push_dummy_call (struct gdbarch *g
|
@@ -1109,7 +1109,8 @@ tic6x_push_dummy_call (struct gdbarch *g
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
internal_error (__FILE__, __LINE__,
|
internal_error (__FILE__, __LINE__,
|
||||||
@ -1171,10 +1171,10 @@ Index: gdb-7.5.0.20120926/gdb/tic6x-tdep.c
|
|||||||
|
|
||||||
addr = sp + stack_offset;
|
addr = sp + stack_offset;
|
||||||
write_memory (addr, val, len);
|
write_memory (addr, val, len);
|
||||||
Index: gdb-7.5.0.20120926/gdb/tilegx-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/tilegx-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/tilegx-tdep.c 2012-11-07 22:00:44.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/tilegx-tdep.c 2013-01-18 23:36:59.983290432 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/tilegx-tdep.c 2012-11-07 22:47:57.610984584 +0100
|
+++ gdb-7.5.50.20130118/gdb/tilegx-tdep.c 2013-01-18 23:37:12.483307607 +0100
|
||||||
@@ -291,7 +291,7 @@ tilegx_push_dummy_call (struct gdbarch *
|
@@ -291,7 +291,7 @@ tilegx_push_dummy_call (struct gdbarch *
|
||||||
CORE_ADDR stack_dest = sp;
|
CORE_ADDR stack_dest = sp;
|
||||||
int argreg = TILEGX_R0_REGNUM;
|
int argreg = TILEGX_R0_REGNUM;
|
||||||
@ -1184,11 +1184,11 @@ Index: gdb-7.5.0.20120926/gdb/tilegx-tdep.c
|
|||||||
static const gdb_byte two_zero_words[8] = { 0 };
|
static const gdb_byte two_zero_words[8] = { 0 };
|
||||||
|
|
||||||
/* If struct_return is 1, then the struct return address will
|
/* If struct_return is 1, then the struct return address will
|
||||||
Index: gdb-7.5.0.20120926/gdb/v850-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/v850-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/v850-tdep.c 2012-05-18 23:02:50.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/v850-tdep.c 2013-01-18 23:36:59.984290434 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/v850-tdep.c 2012-11-07 22:47:57.617984575 +0100
|
+++ gdb-7.5.50.20130118/gdb/v850-tdep.c 2013-01-18 23:37:12.484307608 +0100
|
||||||
@@ -809,7 +809,7 @@ v850_push_dummy_call (struct gdbarch *gd
|
@@ -808,7 +808,7 @@ v850_push_dummy_call (struct gdbarch *gd
|
||||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||||
int argreg;
|
int argreg;
|
||||||
int argnum;
|
int argnum;
|
||||||
@ -1197,7 +1197,7 @@ Index: gdb-7.5.0.20120926/gdb/v850-tdep.c
|
|||||||
int stack_offset;
|
int stack_offset;
|
||||||
|
|
||||||
/* The offset onto the stack at which we will start copying parameters
|
/* The offset onto the stack at which we will start copying parameters
|
||||||
@@ -834,7 +834,7 @@ v850_push_dummy_call (struct gdbarch *gd
|
@@ -833,7 +833,7 @@ v850_push_dummy_call (struct gdbarch *gd
|
||||||
in four registers available. Loop thru args from first to last. */
|
in four registers available. Loop thru args from first to last. */
|
||||||
for (argnum = 0; argnum < nargs; argnum++)
|
for (argnum = 0; argnum < nargs; argnum++)
|
||||||
{
|
{
|
||||||
@ -1206,11 +1206,11 @@ Index: gdb-7.5.0.20120926/gdb/v850-tdep.c
|
|||||||
gdb_byte *val;
|
gdb_byte *val;
|
||||||
gdb_byte valbuf[v850_reg_size];
|
gdb_byte valbuf[v850_reg_size];
|
||||||
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/vax-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/vax-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/vax-tdep.c 2012-11-07 22:46:56.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/vax-tdep.c 2013-01-18 23:36:59.984290434 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/vax-tdep.c 2012-11-07 22:47:57.618984573 +0100
|
+++ gdb-7.5.50.20130118/gdb/vax-tdep.c 2013-01-18 23:37:12.484307608 +0100
|
||||||
@@ -116,7 +116,7 @@ vax_store_arguments (struct regcache *re
|
@@ -115,7 +115,7 @@ vax_store_arguments (struct regcache *re
|
||||||
struct gdbarch *gdbarch = get_regcache_arch (regcache);
|
struct gdbarch *gdbarch = get_regcache_arch (regcache);
|
||||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||||
gdb_byte buf[4];
|
gdb_byte buf[4];
|
||||||
@ -1219,7 +1219,7 @@ Index: gdb-7.5.0.20120926/gdb/vax-tdep.c
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
/* We create an argument list on the stack, and make the argument
|
/* We create an argument list on the stack, and make the argument
|
||||||
@@ -125,7 +125,7 @@ vax_store_arguments (struct regcache *re
|
@@ -124,7 +124,7 @@ vax_store_arguments (struct regcache *re
|
||||||
/* Push arguments in reverse order. */
|
/* Push arguments in reverse order. */
|
||||||
for (i = nargs - 1; i >= 0; i--)
|
for (i = nargs - 1; i >= 0; i--)
|
||||||
{
|
{
|
||||||
@ -1228,10 +1228,10 @@ Index: gdb-7.5.0.20120926/gdb/vax-tdep.c
|
|||||||
|
|
||||||
sp -= (len + 3) & ~3;
|
sp -= (len + 3) & ~3;
|
||||||
count += (len + 3) / 4;
|
count += (len + 3) / 4;
|
||||||
Index: gdb-7.5.0.20120926/gdb/xstormy16-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/xstormy16-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/xstormy16-tdep.c 2012-11-07 22:00:44.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/xstormy16-tdep.c 2013-01-18 23:36:59.984290434 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/xstormy16-tdep.c 2012-11-07 22:47:57.626984562 +0100
|
+++ gdb-7.5.50.20130118/gdb/xstormy16-tdep.c 2013-01-18 23:37:12.484307608 +0100
|
||||||
@@ -235,8 +235,9 @@ xstormy16_push_dummy_call (struct gdbarc
|
@@ -235,8 +235,9 @@ xstormy16_push_dummy_call (struct gdbarc
|
||||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||||
CORE_ADDR stack_dest = sp;
|
CORE_ADDR stack_dest = sp;
|
||||||
@ -1244,10 +1244,10 @@ Index: gdb-7.5.0.20120926/gdb/xstormy16-tdep.c
|
|||||||
const gdb_byte *val;
|
const gdb_byte *val;
|
||||||
char buf[xstormy16_pc_size];
|
char buf[xstormy16_pc_size];
|
||||||
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/xtensa-tdep.c
|
Index: gdb-7.5.50.20130118/gdb/xtensa-tdep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/xtensa-tdep.c 2012-05-18 23:02:51.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/xtensa-tdep.c 2013-01-18 23:36:59.985290436 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/xtensa-tdep.c 2012-11-07 22:47:57.629984557 +0100
|
+++ gdb-7.5.50.20130118/gdb/xtensa-tdep.c 2013-01-18 23:37:12.484307608 +0100
|
||||||
@@ -1653,8 +1653,7 @@ xtensa_store_return_value (struct type *
|
@@ -1653,8 +1653,7 @@ xtensa_store_return_value (struct type *
|
||||||
|
|
||||||
if (len > (callsize > 8 ? 8 : 16))
|
if (len > (callsize > 8 ? 8 : 16))
|
||||||
|
@ -1,113 +0,0 @@
|
|||||||
http://sourceware.org/ml/gdb-cvs/2012-09/msg00160.html
|
|
||||||
|
|
||||||
### src/gdb/ChangeLog 2012/09/26 23:53:53 1.14709
|
|
||||||
### src/gdb/ChangeLog 2012/09/27 08:57:14 1.14710
|
|
||||||
## -1,3 +1,16 @@
|
|
||||||
+2012-09-27 Siddhesh Poyarekar <siddhesh@redhat.com>
|
|
||||||
+
|
|
||||||
+ * gdbtypes.c (lookup_array_range_type): Expand parameters
|
|
||||||
+ LOW_BOUND and HIGH_BOUND to LONGEST.
|
|
||||||
+ (lookup_string_range_type): Likewise.
|
|
||||||
+ * gdbtypes.h (lookup_array_range_type): Likewise.
|
|
||||||
+ (lookup_string_range_type): Likewise.
|
|
||||||
+ * valops.c (value_cstring): Expand parameter LEN to ssize_t.
|
|
||||||
+ Expand HIGHBOUND to ssize_t.
|
|
||||||
+ (value_string): Likewise.
|
|
||||||
+ * value.h (value_cstring): Expand parameter LEN to ssize_t.
|
|
||||||
+ (value_string): Likewise.
|
|
||||||
+
|
|
||||||
2012-09-27 Yao Qi <yao@codesourcery.com>
|
|
||||||
|
|
||||||
PR breakpoints/13898
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/gdbtypes.c
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/gdbtypes.c 2012-11-07 22:09:57.000000000 +0100
|
|
||||||
+++ gdb-7.5.0.20120926/gdb/gdbtypes.c 2012-11-07 22:50:47.048741164 +0100
|
|
||||||
@@ -1022,7 +1022,7 @@ create_array_type (struct type *result_t
|
|
||||||
|
|
||||||
struct type *
|
|
||||||
lookup_array_range_type (struct type *element_type,
|
|
||||||
- int low_bound, int high_bound)
|
|
||||||
+ LONGEST low_bound, LONGEST high_bound)
|
|
||||||
{
|
|
||||||
struct gdbarch *gdbarch = get_type_arch (element_type);
|
|
||||||
struct type *index_type = builtin_type (gdbarch)->builtin_int;
|
|
||||||
@@ -1058,7 +1058,7 @@ create_string_type (struct type *result_
|
|
||||||
|
|
||||||
struct type *
|
|
||||||
lookup_string_range_type (struct type *string_char_type,
|
|
||||||
- int low_bound, int high_bound)
|
|
||||||
+ LONGEST low_bound, LONGEST high_bound)
|
|
||||||
{
|
|
||||||
struct type *result_type;
|
|
||||||
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/gdbtypes.h
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/gdbtypes.h 2012-11-07 22:09:29.000000000 +0100
|
|
||||||
+++ gdb-7.5.0.20120926/gdb/gdbtypes.h 2012-11-07 22:51:46.440655817 +0100
|
|
||||||
@@ -1640,7 +1640,7 @@ extern struct type *create_range_type (s
|
|
||||||
|
|
||||||
extern struct type *create_array_type (struct type *, struct type *,
|
|
||||||
struct type *);
|
|
||||||
-extern struct type *lookup_array_range_type (struct type *, int, int);
|
|
||||||
+extern struct type *lookup_array_range_type (struct type *, LONGEST, LONGEST);
|
|
||||||
|
|
||||||
extern CORE_ADDR type_range_any_field_internal (struct type *range_type,
|
|
||||||
int fieldno);
|
|
||||||
@@ -1656,7 +1656,7 @@ extern void finalize_type (struct type *
|
|
||||||
|
|
||||||
extern struct type *create_string_type (struct type *, struct type *,
|
|
||||||
struct type *);
|
|
||||||
-extern struct type *lookup_string_range_type (struct type *, int, int);
|
|
||||||
+extern struct type *lookup_string_range_type (struct type *, LONGEST, LONGEST);
|
|
||||||
|
|
||||||
extern struct type *create_set_type (struct type *, struct type *);
|
|
||||||
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/valops.c
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/valops.c 2012-11-07 22:46:00.000000000 +0100
|
|
||||||
+++ gdb-7.5.0.20120926/gdb/valops.c 2012-11-07 22:50:47.091741104 +0100
|
|
||||||
@@ -1937,11 +1937,11 @@ value_array (int lowbound, int highbound
|
|
||||||
}
|
|
||||||
|
|
||||||
struct value *
|
|
||||||
-value_cstring (char *ptr, int len, struct type *char_type)
|
|
||||||
+value_cstring (char *ptr, ssize_t len, struct type *char_type)
|
|
||||||
{
|
|
||||||
struct value *val;
|
|
||||||
int lowbound = current_language->string_lower_bound;
|
|
||||||
- int highbound = len / TYPE_LENGTH (char_type);
|
|
||||||
+ ssize_t highbound = len / TYPE_LENGTH (char_type);
|
|
||||||
struct type *stringtype
|
|
||||||
= lookup_array_range_type (char_type, lowbound, highbound + lowbound - 1);
|
|
||||||
|
|
||||||
@@ -1960,11 +1960,11 @@ value_cstring (char *ptr, int len, struc
|
|
||||||
string may contain embedded null bytes. */
|
|
||||||
|
|
||||||
struct value *
|
|
||||||
-value_string (char *ptr, int len, struct type *char_type)
|
|
||||||
+value_string (char *ptr, ssize_t len, struct type *char_type)
|
|
||||||
{
|
|
||||||
struct value *val;
|
|
||||||
int lowbound = current_language->string_lower_bound;
|
|
||||||
- int highbound = len / TYPE_LENGTH (char_type);
|
|
||||||
+ ssize_t highbound = len / TYPE_LENGTH (char_type);
|
|
||||||
struct type *stringtype
|
|
||||||
= lookup_string_range_type (char_type, lowbound, highbound + lowbound - 1);
|
|
||||||
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/value.h
|
|
||||||
===================================================================
|
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/value.h 2012-11-07 22:09:30.000000000 +0100
|
|
||||||
+++ gdb-7.5.0.20120926/gdb/value.h 2012-11-07 22:51:11.744705614 +0100
|
|
||||||
@@ -593,9 +593,9 @@ extern struct value *value_mark (void);
|
|
||||||
|
|
||||||
extern void value_free_to_mark (struct value *mark);
|
|
||||||
|
|
||||||
-extern struct value *value_cstring (char *ptr, int len,
|
|
||||||
+extern struct value *value_cstring (char *ptr, ssize_t len,
|
|
||||||
struct type *char_type);
|
|
||||||
-extern struct value *value_string (char *ptr, int len,
|
|
||||||
+extern struct value *value_string (char *ptr, ssize_t len,
|
|
||||||
struct type *char_type);
|
|
||||||
extern struct value *value_bitstring (char *ptr, int len,
|
|
||||||
struct type *index_type);
|
|
@ -47,13 +47,13 @@ Content-Type: text/x-patch
|
|||||||
Content-Transfer-Encoding: 7bit
|
Content-Transfer-Encoding: 7bit
|
||||||
Content-Disposition: attachment; filename=f77-bounds.patch
|
Content-Disposition: attachment; filename=f77-bounds.patch
|
||||||
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/f-lang.h
|
Index: gdb-7.5.50.20130118/gdb/f-lang.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/f-lang.h 2012-11-07 22:12:39.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/f-lang.h 2013-01-18 23:39:40.209500968 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/f-lang.h 2012-11-07 22:52:02.688632498 +0100
|
+++ gdb-7.5.50.20130118/gdb/f-lang.h 2013-01-18 23:40:04.010531177 +0100
|
||||||
@@ -66,9 +66,9 @@ enum f90_range_type
|
@@ -65,9 +65,9 @@ struct common_block
|
||||||
extern char *real_main_name; /* Name of main function. */
|
struct symbol *contents[1];
|
||||||
extern int real_main_c_value; /* C_value field of main function. */
|
};
|
||||||
|
|
||||||
-extern int f77_get_upperbound (struct type *);
|
-extern int f77_get_upperbound (struct type *);
|
||||||
+extern LONGEST f77_get_upperbound (struct type *);
|
+extern LONGEST f77_get_upperbound (struct type *);
|
||||||
@ -63,11 +63,11 @@ Index: gdb-7.5.0.20120926/gdb/f-lang.h
|
|||||||
|
|
||||||
extern void f77_get_dynamic_array_length (struct type *);
|
extern void f77_get_dynamic_array_length (struct type *);
|
||||||
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/f-typeprint.c
|
Index: gdb-7.5.50.20130118/gdb/f-typeprint.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/f-typeprint.c 2012-11-07 22:00:41.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/f-typeprint.c 2013-01-18 23:39:37.564497620 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/f-typeprint.c 2012-11-07 22:52:02.689632497 +0100
|
+++ gdb-7.5.50.20130118/gdb/f-typeprint.c 2013-01-18 23:39:40.210500970 +0100
|
||||||
@@ -182,7 +182,7 @@ f_type_print_varspec_suffix (struct type
|
@@ -180,7 +180,7 @@ f_type_print_varspec_suffix (struct type
|
||||||
int show, int passed_a_ptr, int demangled_args,
|
int show, int passed_a_ptr, int demangled_args,
|
||||||
int arrayprint_recurse_level)
|
int arrayprint_recurse_level)
|
||||||
{
|
{
|
||||||
@ -76,7 +76,7 @@ Index: gdb-7.5.0.20120926/gdb/f-typeprint.c
|
|||||||
|
|
||||||
/* No static variables are permitted as an error call may occur during
|
/* No static variables are permitted as an error call may occur during
|
||||||
execution of this function. */
|
execution of this function. */
|
||||||
@@ -212,7 +212,7 @@ f_type_print_varspec_suffix (struct type
|
@@ -210,7 +210,7 @@ f_type_print_varspec_suffix (struct type
|
||||||
|
|
||||||
lower_bound = f77_get_lowerbound (type);
|
lower_bound = f77_get_lowerbound (type);
|
||||||
if (lower_bound != 1) /* Not the default. */
|
if (lower_bound != 1) /* Not the default. */
|
||||||
@ -85,7 +85,7 @@ Index: gdb-7.5.0.20120926/gdb/f-typeprint.c
|
|||||||
|
|
||||||
/* Make sure that, if we have an assumed size array, we
|
/* Make sure that, if we have an assumed size array, we
|
||||||
print out a warning and print the upperbound as '*'. */
|
print out a warning and print the upperbound as '*'. */
|
||||||
@@ -222,7 +222,7 @@ f_type_print_varspec_suffix (struct type
|
@@ -220,7 +220,7 @@ f_type_print_varspec_suffix (struct type
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
upper_bound = f77_get_upperbound (type);
|
upper_bound = f77_get_upperbound (type);
|
||||||
@ -94,7 +94,7 @@ Index: gdb-7.5.0.20120926/gdb/f-typeprint.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (TYPE_CODE (TYPE_TARGET_TYPE (type)) != TYPE_CODE_ARRAY)
|
if (TYPE_CODE (TYPE_TARGET_TYPE (type)) != TYPE_CODE_ARRAY)
|
||||||
@@ -291,7 +291,7 @@ void
|
@@ -288,7 +288,7 @@ void
|
||||||
f_type_print_base (struct type *type, struct ui_file *stream, int show,
|
f_type_print_base (struct type *type, struct ui_file *stream, int show,
|
||||||
int level)
|
int level)
|
||||||
{
|
{
|
||||||
@ -103,7 +103,7 @@ Index: gdb-7.5.0.20120926/gdb/f-typeprint.c
|
|||||||
int index;
|
int index;
|
||||||
|
|
||||||
QUIT;
|
QUIT;
|
||||||
@@ -373,7 +373,7 @@ f_type_print_base (struct type *type, st
|
@@ -370,7 +370,7 @@ f_type_print_base (struct type *type, st
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
upper_bound = f77_get_upperbound (type);
|
upper_bound = f77_get_upperbound (type);
|
||||||
@ -112,10 +112,10 @@ Index: gdb-7.5.0.20120926/gdb/f-typeprint.c
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
Index: gdb-7.5.0.20120926/gdb/f-valprint.c
|
Index: gdb-7.5.50.20130118/gdb/f-valprint.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.5.0.20120926.orig/gdb/f-valprint.c 2012-11-07 22:09:29.000000000 +0100
|
--- gdb-7.5.50.20130118.orig/gdb/f-valprint.c 2013-01-18 23:39:37.564497620 +0100
|
||||||
+++ gdb-7.5.0.20120926/gdb/f-valprint.c 2012-11-07 22:52:21.888604907 +0100
|
+++ gdb-7.5.50.20130118/gdb/f-valprint.c 2013-01-18 23:39:40.210500970 +0100
|
||||||
@@ -57,7 +57,7 @@ LONGEST f77_array_offset_tbl[MAX_FORTRAN
|
@@ -57,7 +57,7 @@ LONGEST f77_array_offset_tbl[MAX_FORTRAN
|
||||||
|
|
||||||
#define F77_DIM_BYTE_STRIDE(n) (f77_array_offset_tbl[n][0])
|
#define F77_DIM_BYTE_STRIDE(n) (f77_array_offset_tbl[n][0])
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
val->contents = NULL;
|
val->contents = NULL;
|
||||||
val->next = all_values;
|
val->next = all_values;
|
||||||
--- /dev/null 2012-10-18 11:08:13.202328239 +0200
|
--- /dev/null 2012-10-18 11:08:13.202328239 +0200
|
||||||
+++ gdb-7.5.0.20120926-m64-test/gdb/testsuite/gdb.base/longest-types.exp 2012-11-09 18:13:56.286587994 +0100
|
+++ gdb-7.5.0.20120926-m64-test/gdb/testsuite/gdb.base/longest-types-64bit.exp 2012-11-09 18:13:56.286587994 +0100
|
||||||
@@ -0,0 +1,59 @@
|
@@ -0,0 +1,59 @@
|
||||||
+# This testcase is part of GDB, the GNU debugger.
|
+# This testcase is part of GDB, the GNU debugger.
|
||||||
+
|
+
|
||||||
@ -71,7 +71,7 @@
|
|||||||
+
|
+
|
||||||
+test "native"
|
+test "native"
|
||||||
--- /dev/null 2012-10-18 11:08:13.202328239 +0200
|
--- /dev/null 2012-10-18 11:08:13.202328239 +0200
|
||||||
+++ ./gdb/testsuite/gdb.base/longest-types.c 2012-11-09 17:08:51.374406344 +0100
|
+++ ./gdb/testsuite/gdb.base/longest-types-64bit.c 2012-11-09 17:08:51.374406344 +0100
|
||||||
@@ -0,0 +1,28 @@
|
@@ -0,0 +1,28 @@
|
||||||
+/* This testcase is part of GDB, the GNU debugger.
|
+/* This testcase is part of GDB, the GNU debugger.
|
||||||
+
|
+
|
||||||
|
@ -1,228 +0,0 @@
|
|||||||
http://sourceware.org/ml/binutils/2012-11/msg00352.html
|
|
||||||
Subject: Re: [PATCH] Fix gdb disassemble for power6/power7 instructions
|
|
||||||
|
|
||||||
On Wed, Nov 14, 2012 at 10:16:38AM +1030, Alan Modra wrote:
|
|
||||||
> What I think should happen is that the default handling, ie. the block
|
|
||||||
> that starts with
|
|
||||||
> if ((dialect & ~(ppc_cpu_t) PPC_OPCODE_64) == 0)
|
|
||||||
> should be deleted and a switch on info->mach setting up dialect added
|
|
||||||
> before we parse disassembler_options. That way -m32 and -m64 can
|
|
||||||
> override the default as they are supposed to. See bfd/archures.c for
|
|
||||||
> values of bfd_mach_ppc_*.
|
|
||||||
|
|
||||||
Well that idea didn't turn out to be simple. If we want to bring the
|
|
||||||
default up to something more up-to-date than the current ppc601, then
|
|
||||||
you run into difficulty with "retain_mask" in ppc_parse_cpu. Choosing
|
|
||||||
any of the bits in that mask as a default, eg. PPC_OPCODE_VSX, results
|
|
||||||
in not being able to get rid of those bits.
|
|
||||||
|
|
||||||
Now the idea of "retain_mask" was to cover cases where people pass
|
|
||||||
something like -mppc -maltivec (or even -maltivec -mppc) to the
|
|
||||||
assembler. Historically that has resulted in both PPC_OPCODE_PPC and
|
|
||||||
PPC_OPCODE_ALTIVEC being set; Some options accumulate. So I've
|
|
||||||
redone code handling these sticky options to just keep track of the
|
|
||||||
bits selected by ppc_opts.sticky. Any default selection won't make
|
|
||||||
these bits sticky, you'll only get that effect from -maltivec, -many,
|
|
||||||
-mspe, -mvle and -mvsx on the command line or in .machine directives
|
|
||||||
(and similarly for the corresponding -M disassembler options). I'm
|
|
||||||
not sure why PPC_OPCODE_PMR was ever in "retain_mask". People
|
|
||||||
interested in VLE might need to investigate that.
|
|
||||||
|
|
||||||
One of the effects of updating to a power7 default is that conditional
|
|
||||||
branch hints are displayed for "at" style hints rather than the older
|
|
||||||
"y" hints. When using "y" hints the disassembler always showed the
|
|
||||||
hint, eg. "bne-" or "bne+". Now you'll see "bne" most times. This
|
|
||||||
meant updating the testsuite. I made one gas test disassemble for
|
|
||||||
plain ppc just to ensure the older "y" hints continue to be available.
|
|
||||||
|
|
||||||
Committed.
|
|
||||||
|
|
||||||
include/opcode/
|
|
||||||
* ppc.h (ppc_parse_cpu): Update prototype.
|
|
||||||
opcodes/
|
|
||||||
* ppc-dis.c (ppc_parse_cpu): Add "sticky" param. Track bits
|
|
||||||
set from ppc_opts.sticky in it. Delete "retain_mask".
|
|
||||||
(powerpc_init_dialect): Choose default dialect from info->mach
|
|
||||||
before parsing -M options. Handle more bfd_mach_ppc variants.
|
|
||||||
Update common default to power7.
|
|
||||||
gas/
|
|
||||||
* config/tc-ppc.c (sticky): New var.
|
|
||||||
(md_parse_option, ppc_machine): Update ppc_parse_cpu calls.
|
|
||||||
gas/testsuite/
|
|
||||||
* gas/ppc/astest2.d: Pass -Mppc to objdump.
|
|
||||||
ld/testsuite/
|
|
||||||
* ld-powerpc/plt1.d: Update for default "at" branch hints.
|
|
||||||
* ld-powerpc/tlsexe.d: Likewise.
|
|
||||||
* ld-powerpc/tlsexetoc.d: Likewise.
|
|
||||||
* ld-powerpc/tlsopt1.d: Likewise.
|
|
||||||
* ld-powerpc/tlsopt1_32.d: Likewise.
|
|
||||||
* ld-powerpc/tlsopt2.d: Likewise.
|
|
||||||
* ld-powerpc/tlsopt2_32.d: Likewise.
|
|
||||||
* ld-powerpc/tlsopt4.d: Likewise.
|
|
||||||
* ld-powerpc/tlsopt4_32.d: Likewise.
|
|
||||||
* ld-powerpc/tlsso.d: Likewise.
|
|
||||||
* ld-powerpc/tlstocso.d: Likewise.
|
|
||||||
|
|
||||||
Index: include/opcode/ppc.h
|
|
||||||
===================================================================
|
|
||||||
RCS file: /cvs/src/src/include/opcode/ppc.h,v
|
|
||||||
retrieving revision 1.44
|
|
||||||
diff -u -p -r1.44 ppc.h
|
|
||||||
--- ./include/opcode/ppc.h 14 May 2012 19:45:27 -0000 1.44
|
|
||||||
+++ ./include/opcode/ppc.h 22 Nov 2012 22:45:18 -0000
|
|
||||||
@@ -400,6 +400,6 @@ struct powerpc_macro
|
|
||||||
extern const struct powerpc_macro powerpc_macros[];
|
|
||||||
extern const int powerpc_num_macros;
|
|
||||||
|
|
||||||
-extern ppc_cpu_t ppc_parse_cpu (ppc_cpu_t, const char *);
|
|
||||||
+extern ppc_cpu_t ppc_parse_cpu (ppc_cpu_t, ppc_cpu_t *, const char *);
|
|
||||||
|
|
||||||
#endif /* PPC_H */
|
|
||||||
Index: opcodes/ppc-dis.c
|
|
||||||
===================================================================
|
|
||||||
RCS file: /cvs/src/src/opcodes/ppc-dis.c,v
|
|
||||||
retrieving revision 1.60
|
|
||||||
diff -u -p -r1.60 ppc-dis.c
|
|
||||||
--- ./opcodes/ppc-dis.c 5 Oct 2012 14:06:20 -0000 1.60
|
|
||||||
+++ ./opcodes/ppc-dis.c 22 Nov 2012 22:45:19 -0000
|
|
||||||
@@ -211,13 +211,8 @@ get_powerpc_dialect (struct disassemble_
|
|
||||||
/* Handle -m and -M options that set cpu type, and .machine arg. */
|
|
||||||
|
|
||||||
ppc_cpu_t
|
|
||||||
-ppc_parse_cpu (ppc_cpu_t ppc_cpu, const char *arg)
|
|
||||||
+ppc_parse_cpu (ppc_cpu_t ppc_cpu, ppc_cpu_t *sticky, const char *arg)
|
|
||||||
{
|
|
||||||
- const ppc_cpu_t retain_mask = (PPC_OPCODE_ALTIVEC | PPC_OPCODE_VSX
|
|
||||||
- | PPC_OPCODE_SPE | PPC_OPCODE_ANY
|
|
||||||
- | PPC_OPCODE_VLE | PPC_OPCODE_PMR);
|
|
||||||
- /* Sticky bits. */
|
|
||||||
- ppc_cpu_t retain_flags = ppc_cpu & retain_mask;
|
|
||||||
unsigned int i;
|
|
||||||
|
|
||||||
for (i = 0; i < sizeof (ppc_opts) / sizeof (ppc_opts[0]); i++)
|
|
||||||
@@ -225,8 +220,8 @@ ppc_parse_cpu (ppc_cpu_t ppc_cpu, const
|
|
||||||
{
|
|
||||||
if (ppc_opts[i].sticky)
|
|
||||||
{
|
|
||||||
- retain_flags |= ppc_opts[i].sticky;
|
|
||||||
- if ((ppc_cpu & ~retain_mask) != 0)
|
|
||||||
+ *sticky |= ppc_opts[i].sticky;
|
|
||||||
+ if ((ppc_cpu & ~*sticky) != 0)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
ppc_cpu = ppc_opts[i].cpu;
|
|
||||||
@@ -235,7 +230,7 @@ ppc_parse_cpu (ppc_cpu_t ppc_cpu, const
|
|
||||||
if (i >= sizeof (ppc_opts) / sizeof (ppc_opts[0]))
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
- ppc_cpu |= retain_flags;
|
|
||||||
+ ppc_cpu |= *sticky;
|
|
||||||
return ppc_cpu;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -245,12 +240,75 @@ static void
|
|
||||||
powerpc_init_dialect (struct disassemble_info *info)
|
|
||||||
{
|
|
||||||
ppc_cpu_t dialect = 0;
|
|
||||||
+ ppc_cpu_t sticky = 0;
|
|
||||||
char *arg;
|
|
||||||
struct dis_private *priv = calloc (sizeof (*priv), 1);
|
|
||||||
|
|
||||||
if (priv == NULL)
|
|
||||||
priv = &private;
|
|
||||||
|
|
||||||
+ switch (info->mach)
|
|
||||||
+ {
|
|
||||||
+ case bfd_mach_ppc_403:
|
|
||||||
+ case bfd_mach_ppc_403gc:
|
|
||||||
+ dialect = (PPC_OPCODE_PPC | PPC_OPCODE_403);
|
|
||||||
+ break;
|
|
||||||
+ case bfd_mach_ppc_405:
|
|
||||||
+ dialect = (PPC_OPCODE_PPC | PPC_OPCODE_403 | PPC_OPCODE_405);
|
|
||||||
+ break;
|
|
||||||
+ case bfd_mach_ppc_601:
|
|
||||||
+ dialect = (PPC_OPCODE_PPC | PPC_OPCODE_601);
|
|
||||||
+ break;
|
|
||||||
+ case bfd_mach_ppc_a35:
|
|
||||||
+ case bfd_mach_ppc_rs64ii:
|
|
||||||
+ case bfd_mach_ppc_rs64iii:
|
|
||||||
+ dialect = (PPC_OPCODE_POWER | PPC_OPCODE_POWER2 | PPC_OPCODE_64);
|
|
||||||
+ break;
|
|
||||||
+ case bfd_mach_ppc_e500:
|
|
||||||
+ dialect = (PPC_OPCODE_PPC | PPC_OPCODE_BOOKE | PPC_OPCODE_SPE
|
|
||||||
+ | PPC_OPCODE_ISEL | PPC_OPCODE_EFS | PPC_OPCODE_BRLOCK
|
|
||||||
+ | PPC_OPCODE_PMR | PPC_OPCODE_CACHELCK | PPC_OPCODE_RFMCI
|
|
||||||
+ | PPC_OPCODE_E500);
|
|
||||||
+ break;
|
|
||||||
+ case bfd_mach_ppc_e500mc:
|
|
||||||
+ dialect = (PPC_OPCODE_PPC | PPC_OPCODE_BOOKE | PPC_OPCODE_ISEL
|
|
||||||
+ | PPC_OPCODE_PMR | PPC_OPCODE_CACHELCK | PPC_OPCODE_RFMCI
|
|
||||||
+ | PPC_OPCODE_E500MC);
|
|
||||||
+ break;
|
|
||||||
+ case bfd_mach_ppc_e500mc64:
|
|
||||||
+ dialect = (PPC_OPCODE_PPC | PPC_OPCODE_BOOKE | PPC_OPCODE_ISEL
|
|
||||||
+ | PPC_OPCODE_PMR | PPC_OPCODE_CACHELCK | PPC_OPCODE_RFMCI
|
|
||||||
+ | PPC_OPCODE_E500MC | PPC_OPCODE_64 | PPC_OPCODE_POWER5
|
|
||||||
+ | PPC_OPCODE_POWER6 | PPC_OPCODE_POWER7);
|
|
||||||
+ break;
|
|
||||||
+ case bfd_mach_ppc_e5500:
|
|
||||||
+ dialect = (PPC_OPCODE_PPC | PPC_OPCODE_BOOKE | PPC_OPCODE_ISEL
|
|
||||||
+ | PPC_OPCODE_PMR | PPC_OPCODE_CACHELCK | PPC_OPCODE_RFMCI
|
|
||||||
+ | PPC_OPCODE_E500MC | PPC_OPCODE_64 | PPC_OPCODE_POWER4
|
|
||||||
+ | PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6
|
|
||||||
+ | PPC_OPCODE_POWER7);
|
|
||||||
+ break;
|
|
||||||
+ case bfd_mach_ppc_e6500:
|
|
||||||
+ dialect = (PPC_OPCODE_PPC | PPC_OPCODE_BOOKE | PPC_OPCODE_ISEL
|
|
||||||
+ | PPC_OPCODE_PMR | PPC_OPCODE_CACHELCK | PPC_OPCODE_RFMCI
|
|
||||||
+ | PPC_OPCODE_E500MC | PPC_OPCODE_64 | PPC_OPCODE_ALTIVEC
|
|
||||||
+ | PPC_OPCODE_ALTIVEC2 | PPC_OPCODE_E6500 | PPC_OPCODE_POWER4
|
|
||||||
+ | PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6 | PPC_OPCODE_POWER7);
|
|
||||||
+ break;
|
|
||||||
+ case bfd_mach_ppc_titan:
|
|
||||||
+ dialect = (PPC_OPCODE_PPC | PPC_OPCODE_BOOKE | PPC_OPCODE_PMR
|
|
||||||
+ | PPC_OPCODE_RFMCI | PPC_OPCODE_TITAN);
|
|
||||||
+ break;
|
|
||||||
+ case bfd_mach_ppc_vle:
|
|
||||||
+ dialect = (PPC_OPCODE_PPC | PPC_OPCODE_ISEL | PPC_OPCODE_VLE);
|
|
||||||
+ break;
|
|
||||||
+ default:
|
|
||||||
+ dialect = (PPC_OPCODE_PPC | PPC_OPCODE_ISEL | PPC_OPCODE_64
|
|
||||||
+ | PPC_OPCODE_POWER4 | PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6
|
|
||||||
+ | PPC_OPCODE_POWER7 | PPC_OPCODE_ALTIVEC | PPC_OPCODE_VSX
|
|
||||||
+ | PPC_OPCODE_ANY);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
arg = info->disassembler_options;
|
|
||||||
while (arg != NULL)
|
|
||||||
{
|
|
||||||
@@ -260,7 +318,7 @@ powerpc_init_dialect (struct disassemble
|
|
||||||
if (end != NULL)
|
|
||||||
*end = 0;
|
|
||||||
|
|
||||||
- if ((new_cpu = ppc_parse_cpu (dialect, arg)) != 0)
|
|
||||||
+ if ((new_cpu = ppc_parse_cpu (dialect, &sticky, arg)) != 0)
|
|
||||||
dialect = new_cpu;
|
|
||||||
else if (strcmp (arg, "32") == 0)
|
|
||||||
dialect &= ~(ppc_cpu_t) PPC_OPCODE_64;
|
|
||||||
@@ -274,20 +332,6 @@ powerpc_init_dialect (struct disassemble
|
|
||||||
arg = end;
|
|
||||||
}
|
|
||||||
|
|
||||||
- if ((dialect & ~(ppc_cpu_t) PPC_OPCODE_64) == 0)
|
|
||||||
- {
|
|
||||||
- if (info->mach == bfd_mach_ppc64)
|
|
||||||
- dialect |= PPC_OPCODE_64;
|
|
||||||
- else
|
|
||||||
- dialect &= ~(ppc_cpu_t) PPC_OPCODE_64;
|
|
||||||
- if (info->mach == bfd_mach_ppc_vle)
|
|
||||||
- dialect |= PPC_OPCODE_PPC | PPC_OPCODE_VLE;
|
|
||||||
- else
|
|
||||||
- /* Choose a reasonable default. */
|
|
||||||
- dialect |= (PPC_OPCODE_PPC | PPC_OPCODE_COMMON | PPC_OPCODE_601
|
|
||||||
- | PPC_OPCODE_ALTIVEC);
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
info->private_data = priv;
|
|
||||||
POWERPC_DIALECT(info) = dialect;
|
|
||||||
}
|
|
@ -1,60 +0,0 @@
|
|||||||
http://sourceware.org/ml/gdb-patches/2012-11/msg00624.html
|
|
||||||
Subject: Re: [PATCH] Fix gdb disassemble for power6/power7 instructions
|
|
||||||
|
|
||||||
On 11/23/2012 01:28 AM, Alan Modra wrote:
|
|
||||||
> One of the effects of updating to a power7 default is that conditional
|
|
||||||
> branch hints are displayed for "at" style hints rather than the older
|
|
||||||
> "y" hints. When using "y" hints the disassembler always showed the
|
|
||||||
> hint, eg. "bne-" or "bne+". Now you'll see "bne" most times. This
|
|
||||||
> meant updating the testsuite. I made one gas test disassemble for
|
|
||||||
> plain ppc just to ensure the older "y" hints continue to be available.
|
|
||||||
>
|
|
||||||
> Committed.
|
|
||||||
|
|
||||||
Thanks a lot for the patch, Alan. This also fixes the issues with gdb
|
|
||||||
disassemble for power6 and power7 instructions.
|
|
||||||
|
|
||||||
With these changes on powerpc_init_dialect(), I'd suggest to remove the info->mach
|
|
||||||
checking from gdb. Ok?
|
|
||||||
|
|
||||||
--
|
|
||||||
Edjunior
|
|
||||||
|
|
||||||
2012-11-23 Edjunior Machado <emachado@linux.vnet.ibm.com>
|
|
||||||
|
|
||||||
* rs6000-tdep.c (gdb_print_insn_powerpc): Remove info->mach checking,
|
|
||||||
since now it is being done in binutils' powerpc_init_dialect().
|
|
||||||
|
|
||||||
---
|
|
||||||
gdb/rs6000-tdep.c | 15 ---------------
|
|
||||||
1 files changed, 0 insertions(+), 15 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c
|
|
||||||
index 1797cc5..07b81bc 100644
|
|
||||||
--- a/gdb/rs6000-tdep.c
|
|
||||||
+++ b/gdb/rs6000-tdep.c
|
|
||||||
@@ -3084,21 +3084,6 @@ find_variant_by_arch (enum bfd_architecture arch, unsigned long mach)
|
|
||||||
static int
|
|
||||||
gdb_print_insn_powerpc (bfd_vma memaddr, disassemble_info *info)
|
|
||||||
{
|
|
||||||
- if (!info->disassembler_options)
|
|
||||||
- {
|
|
||||||
- /* When debugging E500 binaries and disassembling code containing
|
|
||||||
- E500-specific (SPE) instructions, one sometimes sees AltiVec
|
|
||||||
- instructions instead. The opcode spaces for SPE instructions
|
|
||||||
- and AltiVec instructions overlap, and specifiying the "any" cpu
|
|
||||||
- looks for AltiVec instructions first. If we know we're
|
|
||||||
- debugging an E500 binary, however, we can specify the "e500x2"
|
|
||||||
- cpu and get much more sane disassembly output. */
|
|
||||||
- if (info->mach == bfd_mach_ppc_e500)
|
|
||||||
- info->disassembler_options = "e500x2";
|
|
||||||
- else
|
|
||||||
- info->disassembler_options = "any";
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
if (info->endian == BFD_ENDIAN_BIG)
|
|
||||||
return print_insn_big_powerpc (memaddr, info);
|
|
||||||
else
|
|
||||||
--
|
|
||||||
1.7.1
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
|||||||
Some functionality is available on RHEL-5.4+ only with gcc44 and gfortran44 as
|
Some functionality is available on RHEL-5.4+ only with gcc44 and gfortran44 as
|
||||||
the default gcc and gfortran binaries are from gcc-4.1.
|
the default gcc and gfortran binaries are from gcc-4.1.
|
||||||
|
|
||||||
Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.base/vla.exp
|
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/vla.exp
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20120703.orig/gdb/testsuite/gdb.base/vla.exp 2012-07-03 17:30:07.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.base/vla.exp 2013-01-18 23:43:04.455756362 +0100
|
||||||
+++ gdb-7.4.50.20120703/gdb/testsuite/gdb.base/vla.exp 2012-07-03 17:50:57.999207540 +0200
|
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/vla.exp 2013-01-18 23:43:08.082761164 +0100
|
||||||
@@ -16,7 +16,25 @@
|
@@ -16,7 +16,25 @@
|
||||||
set testfile vla
|
set testfile vla
|
||||||
set srcfile ${testfile}.c
|
set srcfile ${testfile}.c
|
||||||
@ -32,10 +32,10 @@ Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.base/vla.exp
|
|||||||
untested "Couldn't compile test program"
|
untested "Couldn't compile test program"
|
||||||
return -1
|
return -1
|
||||||
}
|
}
|
||||||
Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.base/break-interp.exp
|
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-interp.exp
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20120703.orig/gdb/testsuite/gdb.base/break-interp.exp 2012-07-03 17:44:45.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.base/break-interp.exp 2013-01-18 23:43:04.456756365 +0100
|
||||||
+++ gdb-7.4.50.20120703/gdb/testsuite/gdb.base/break-interp.exp 2012-07-03 17:50:58.000207539 +0200
|
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-interp.exp 2013-01-18 23:43:08.082761164 +0100
|
||||||
@@ -34,9 +34,29 @@ if [get_compiler_info] {
|
@@ -34,9 +34,29 @@ if [get_compiler_info] {
|
||||||
return -1
|
return -1
|
||||||
}
|
}
|
||||||
@ -67,15 +67,16 @@ Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.base/break-interp.exp
|
|||||||
return -1
|
return -1
|
||||||
}
|
}
|
||||||
|
|
||||||
Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.fortran/common-block.exp
|
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/common-block.exp
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20120703.orig/gdb/testsuite/gdb.fortran/common-block.exp 2012-07-03 17:36:21.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.fortran/common-block.exp 2013-01-18 23:43:08.082761164 +0100
|
||||||
+++ gdb-7.4.50.20120703/gdb/testsuite/gdb.fortran/common-block.exp 2012-07-03 17:50:58.001207537 +0200
|
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/common-block.exp 2013-01-18 23:44:23.047856182 +0100
|
||||||
@@ -20,7 +20,25 @@ set testfile "common-block"
|
@@ -22,8 +22,25 @@ if {[skip_fortran_tests]} {
|
||||||
set srcfile ${testfile}.f90
|
|
||||||
set binfile ${objdir}/${subdir}/${testfile}
|
|
||||||
|
|
||||||
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f90 quiet}] != "" } {
|
standard_testfile .f90
|
||||||
|
|
||||||
|
-if {[prepare_for_testing ${testfile}.exp ${testfile} \
|
||||||
|
- $srcfile {debug f90 quiet}]} {
|
||||||
+# Temporarily provide f90compiler=gfortran44 saving the original value around.
|
+# Temporarily provide f90compiler=gfortran44 saving the original value around.
|
||||||
+
|
+
|
||||||
+set board [target_info name]
|
+set board [target_info name]
|
||||||
@ -87,21 +88,21 @@ Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.fortran/common-block.exp
|
|||||||
+}
|
+}
|
||||||
+set_board_info f90compiler gfortran44
|
+set_board_info f90compiler gfortran44
|
||||||
+
|
+
|
||||||
+set err [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f90 quiet}]
|
+set err [prepare_for_testing ${testfile}.exp ${testfile} $srcfile {debug f90 quiet}]
|
||||||
+
|
+
|
||||||
+unset_board_info f90compiler
|
+unset_board_info f90compiler
|
||||||
+if [info exists old_f90compiler] {
|
+if [info exists old_f90compiler] {
|
||||||
+ set_board_info f90compiler $old_f90compiler
|
+ set_board_info f90compiler $old_f90compiler
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+if { $err != "" } {
|
+if {$err} {
|
||||||
untested "Couldn't compile ${srcfile}"
|
|
||||||
return -1
|
return -1
|
||||||
}
|
}
|
||||||
Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.fortran/dwarf-stride.exp
|
|
||||||
|
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/dwarf-stride.exp
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20120703.orig/gdb/testsuite/gdb.fortran/dwarf-stride.exp 2012-07-03 17:30:07.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.fortran/dwarf-stride.exp 2013-01-18 23:43:04.456756365 +0100
|
||||||
+++ gdb-7.4.50.20120703/gdb/testsuite/gdb.fortran/dwarf-stride.exp 2012-07-03 17:50:58.002207535 +0200
|
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/dwarf-stride.exp 2013-01-18 23:43:08.083761148 +0100
|
||||||
@@ -27,7 +27,25 @@
|
@@ -27,7 +27,25 @@
|
||||||
set testfile dwarf-stride
|
set testfile dwarf-stride
|
||||||
set srcfile ${testfile}.f90
|
set srcfile ${testfile}.f90
|
||||||
@ -129,10 +130,10 @@ Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.fortran/dwarf-stride.exp
|
|||||||
return -1
|
return -1
|
||||||
}
|
}
|
||||||
|
|
||||||
Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.fortran/dynamic.exp
|
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/dynamic.exp
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20120703.orig/gdb/testsuite/gdb.fortran/dynamic.exp 2012-07-03 17:30:07.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.fortran/dynamic.exp 2013-01-18 23:43:04.457756367 +0100
|
||||||
+++ gdb-7.4.50.20120703/gdb/testsuite/gdb.fortran/dynamic.exp 2012-07-03 17:50:58.002207535 +0200
|
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/dynamic.exp 2013-01-18 23:43:08.083761148 +0100
|
||||||
@@ -25,7 +25,25 @@ set testfile "dynamic"
|
@@ -25,7 +25,25 @@ set testfile "dynamic"
|
||||||
set srcfile ${testfile}.f90
|
set srcfile ${testfile}.f90
|
||||||
set binfile ${objdir}/${subdir}/${testfile}
|
set binfile ${objdir}/${subdir}/${testfile}
|
||||||
@ -160,10 +161,10 @@ Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.fortran/dynamic.exp
|
|||||||
untested "Couldn't compile ${srcfile}"
|
untested "Couldn't compile ${srcfile}"
|
||||||
return -1
|
return -1
|
||||||
}
|
}
|
||||||
Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.fortran/library-module.exp
|
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/library-module.exp
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20120703.orig/gdb/testsuite/gdb.fortran/library-module.exp 2012-06-25 22:51:35.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.fortran/library-module.exp 2013-01-18 23:43:04.457756367 +0100
|
||||||
+++ gdb-7.4.50.20120703/gdb/testsuite/gdb.fortran/library-module.exp 2012-07-03 17:52:57.666062981 +0200
|
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/library-module.exp 2013-01-18 23:43:08.083761148 +0100
|
||||||
@@ -23,16 +23,34 @@ if [get_compiler_info] {
|
@@ -23,16 +23,34 @@ if [get_compiler_info] {
|
||||||
return -1
|
return -1
|
||||||
}
|
}
|
||||||
@ -203,10 +204,10 @@ Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.fortran/library-module.exp
|
|||||||
untested "Couldn't compile ${srcfile}"
|
untested "Couldn't compile ${srcfile}"
|
||||||
return -1
|
return -1
|
||||||
}
|
}
|
||||||
Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.fortran/module.exp
|
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/module.exp
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20120703.orig/gdb/testsuite/gdb.fortran/module.exp 2012-06-25 22:51:35.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.fortran/module.exp 2013-01-18 23:43:04.457756367 +0100
|
||||||
+++ gdb-7.4.50.20120703/gdb/testsuite/gdb.fortran/module.exp 2012-07-03 17:53:56.464992086 +0200
|
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/module.exp 2013-01-18 23:43:08.083761148 +0100
|
||||||
@@ -15,7 +15,25 @@
|
@@ -15,7 +15,25 @@
|
||||||
|
|
||||||
standard_testfile .f90
|
standard_testfile .f90
|
||||||
@ -234,10 +235,10 @@ Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.fortran/module.exp
|
|||||||
return -1
|
return -1
|
||||||
}
|
}
|
||||||
|
|
||||||
Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.fortran/string.exp
|
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/string.exp
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20120703.orig/gdb/testsuite/gdb.fortran/string.exp 2012-07-03 17:30:07.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.fortran/string.exp 2013-01-18 23:43:04.457756367 +0100
|
||||||
+++ gdb-7.4.50.20120703/gdb/testsuite/gdb.fortran/string.exp 2012-07-03 17:50:58.005207532 +0200
|
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/string.exp 2013-01-18 23:43:08.083761148 +0100
|
||||||
@@ -23,7 +23,25 @@ set testfile "string"
|
@@ -23,7 +23,25 @@ set testfile "string"
|
||||||
set srcfile ${testfile}.f90
|
set srcfile ${testfile}.f90
|
||||||
set binfile ${objdir}/${subdir}/${testfile}
|
set binfile ${objdir}/${subdir}/${testfile}
|
||||||
@ -265,10 +266,10 @@ Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.fortran/string.exp
|
|||||||
untested "Couldn't compile ${srcfile}"
|
untested "Couldn't compile ${srcfile}"
|
||||||
return -1
|
return -1
|
||||||
}
|
}
|
||||||
Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.fortran/omp-step.exp
|
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/omp-step.exp
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20120703.orig/gdb/testsuite/gdb.fortran/omp-step.exp 2012-07-03 17:36:21.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.fortran/omp-step.exp 2013-01-18 23:43:04.458756369 +0100
|
||||||
+++ gdb-7.4.50.20120703/gdb/testsuite/gdb.fortran/omp-step.exp 2012-07-03 17:50:58.006207531 +0200
|
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/omp-step.exp 2013-01-18 23:43:08.083761148 +0100
|
||||||
@@ -15,7 +15,26 @@
|
@@ -15,7 +15,26 @@
|
||||||
|
|
||||||
set testfile "omp-step"
|
set testfile "omp-step"
|
||||||
@ -297,10 +298,10 @@ Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.fortran/omp-step.exp
|
|||||||
return -1
|
return -1
|
||||||
}
|
}
|
||||||
|
|
||||||
Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.fortran/derived-type.exp
|
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/derived-type.exp
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20120703.orig/gdb/testsuite/gdb.fortran/derived-type.exp 2012-06-25 22:51:35.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.fortran/derived-type.exp 2013-01-18 23:43:04.458756369 +0100
|
||||||
+++ gdb-7.4.50.20120703/gdb/testsuite/gdb.fortran/derived-type.exp 2012-07-03 17:55:46.583858849 +0200
|
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/derived-type.exp 2013-01-18 23:43:08.084761135 +0100
|
||||||
@@ -22,7 +22,25 @@ if { [skip_fortran_tests] } { return -1
|
@@ -22,7 +22,25 @@ if { [skip_fortran_tests] } { return -1
|
||||||
|
|
||||||
standard_testfile .f90
|
standard_testfile .f90
|
||||||
@ -328,10 +329,10 @@ Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.fortran/derived-type.exp
|
|||||||
return -1
|
return -1
|
||||||
}
|
}
|
||||||
|
|
||||||
Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.fortran/subarray.exp
|
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/subarray.exp
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20120703.orig/gdb/testsuite/gdb.fortran/subarray.exp 2012-06-25 22:51:35.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.fortran/subarray.exp 2013-01-18 23:43:04.458756369 +0100
|
||||||
+++ gdb-7.4.50.20120703/gdb/testsuite/gdb.fortran/subarray.exp 2012-07-03 17:56:20.454818198 +0200
|
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/subarray.exp 2013-01-18 23:43:08.084761135 +0100
|
||||||
@@ -22,7 +22,25 @@ if { [skip_fortran_tests] } { return -1
|
@@ -22,7 +22,25 @@ if { [skip_fortran_tests] } { return -1
|
||||||
|
|
||||||
standard_testfile .f
|
standard_testfile .f
|
||||||
@ -359,10 +360,10 @@ Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.fortran/subarray.exp
|
|||||||
return -1
|
return -1
|
||||||
}
|
}
|
||||||
|
|
||||||
Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.threads/tls-sepdebug.exp
|
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.threads/tls-sepdebug.exp
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20120703.orig/gdb/testsuite/gdb.threads/tls-sepdebug.exp 2012-07-03 17:32:05.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.threads/tls-sepdebug.exp 2013-01-18 23:43:04.459756371 +0100
|
||||||
+++ gdb-7.4.50.20120703/gdb/testsuite/gdb.threads/tls-sepdebug.exp 2012-07-03 17:50:58.007207530 +0200
|
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.threads/tls-sepdebug.exp 2013-01-18 23:43:08.084761135 +0100
|
||||||
@@ -32,7 +32,25 @@ set binshareddebugfile ${objdir}/${subdi
|
@@ -32,7 +32,25 @@ set binshareddebugfile ${objdir}/${subdi
|
||||||
|
|
||||||
# FIXME: gcc dependency (-Wl,-soname).
|
# FIXME: gcc dependency (-Wl,-soname).
|
||||||
@ -390,10 +391,10 @@ Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.threads/tls-sepdebug.exp
|
|||||||
untested "Couldn't compile test library"
|
untested "Couldn't compile test library"
|
||||||
return -1
|
return -1
|
||||||
}
|
}
|
||||||
Index: gdb-7.4.50.20120703/gdb/testsuite/lib/prelink-support.exp
|
Index: gdb-7.5.50.20130118/gdb/testsuite/lib/prelink-support.exp
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-7.4.50.20120703.orig/gdb/testsuite/lib/prelink-support.exp 2012-07-03 17:44:45.000000000 +0200
|
--- gdb-7.5.50.20130118.orig/gdb/testsuite/lib/prelink-support.exp 2013-01-18 23:43:04.459756371 +0100
|
||||||
+++ gdb-7.4.50.20120703/gdb/testsuite/lib/prelink-support.exp 2012-07-03 17:50:58.008207529 +0200
|
+++ gdb-7.5.50.20130118/gdb/testsuite/lib/prelink-support.exp 2013-01-18 23:43:08.084761135 +0100
|
||||||
@@ -119,9 +119,31 @@ proc file_copy {src dest} {
|
@@ -119,9 +119,31 @@ proc file_copy {src dest} {
|
||||||
proc build_executable_own_libs {testname executable sources options {interp ""} {dir ""}} {
|
proc build_executable_own_libs {testname executable sources options {interp ""} {dir ""}} {
|
||||||
global objdir subdir
|
global objdir subdir
|
||||||
|
@ -1,26 +0,0 @@
|
|||||||
FYI: set dwz_file in dwarf2read.c
|
|
||||||
http://sourceware.org/ml/gdb-patches/2012-12/msg00354.html
|
|
||||||
http://sourceware.org/ml/gdb-cvs/2012-12/msg00058.html
|
|
||||||
|
|
||||||
### src/gdb/ChangeLog 2012/12/11 18:45:23 1.14904
|
|
||||||
### src/gdb/ChangeLog 2012/12/11 19:50:52 1.14905
|
|
||||||
## -1,5 +1,9 @@
|
|
||||||
2012-12-11 Tom Tromey <tromey@redhat.com>
|
|
||||||
|
|
||||||
+ * dwarf2read.c (dwarf2_get_dwz_file): Set 'dwz_file'.
|
|
||||||
+
|
|
||||||
+2012-12-11 Tom Tromey <tromey@redhat.com>
|
|
||||||
+
|
|
||||||
* dsrec.c (report_transfer_performance): Don't declare.
|
|
||||||
(load_srec): Use gettimeofday, print_transfer_performance.
|
|
||||||
* symfile.c (report_transfer_performance): Remove.
|
|
||||||
--- src/gdb/dwarf2read.c 2012/12/10 22:02:34 1.720
|
|
||||||
+++ src/gdb/dwarf2read.c 2012/12/11 19:50:53 1.721
|
|
||||||
@@ -2112,6 +2112,7 @@
|
|
||||||
|
|
||||||
do_cleanups (cleanup);
|
|
||||||
|
|
||||||
+ dwarf2_per_objfile->dwz_file = result;
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
132
gdb.spec
132
gdb.spec
@ -30,11 +30,11 @@ Name: %{?scl_prefix}gdb
|
|||||||
%global snap 20120817
|
%global snap 20120817
|
||||||
# See timestamp of source gnulib installed into gdb/gnulib/ .
|
# See timestamp of source gnulib installed into gdb/gnulib/ .
|
||||||
%global snapgnulib 20120623
|
%global snapgnulib 20120623
|
||||||
Version: 7.5.1
|
Version: 7.5.50.20130118
|
||||||
|
|
||||||
# The release always contains a leading reserved number, start it at 1.
|
# 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.
|
# `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
|
||||||
Release: 35%{?dist}
|
Release: 1%{?dist}
|
||||||
|
|
||||||
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and BSD and Public Domain
|
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and BSD and Public Domain
|
||||||
Group: Development/Debuggers
|
Group: Development/Debuggers
|
||||||
@ -261,7 +261,7 @@ Patch231: gdb-6.3-bz202689-exec-from-pthread-test.patch
|
|||||||
|
|
||||||
# Backported fixups post the source tarball.
|
# Backported fixups post the source tarball.
|
||||||
#Xdrop: Just backports.
|
#Xdrop: Just backports.
|
||||||
Patch232: gdb-upstream.patch
|
#Patch232: gdb-upstream.patch
|
||||||
|
|
||||||
# Testcase for PPC Power6/DFP instructions disassembly (BZ 230000).
|
# Testcase for PPC Power6/DFP instructions disassembly (BZ 230000).
|
||||||
#=fedoratest+ppc
|
#=fedoratest+ppc
|
||||||
@ -374,10 +374,6 @@ Patch329: gdb-6.8-bz254229-gcore-prpsinfo.patch
|
|||||||
#=push+work: This fix is incorrect.
|
#=push+work: This fix is incorrect.
|
||||||
Patch330: gdb-6.8-bz436037-reg-no-longer-active.patch
|
Patch330: gdb-6.8-bz436037-reg-no-longer-active.patch
|
||||||
|
|
||||||
# Make the GDB quit processing non-abortable to cleanup everything properly.
|
|
||||||
#=push: It was useful only after gdb-6.8-attach-signalled-detach-stopped.patch .
|
|
||||||
Patch331: gdb-6.8-quit-never-aborts.patch
|
|
||||||
|
|
||||||
# [RHEL5] Workaround kernel for detaching SIGSTOPped processes (BZ 809382).
|
# [RHEL5] Workaround kernel for detaching SIGSTOPped processes (BZ 809382).
|
||||||
#=fedora
|
#=fedora
|
||||||
Patch335: gdb-rhel5-compat.patch
|
Patch335: gdb-rhel5-compat.patch
|
||||||
@ -433,12 +429,6 @@ Patch397: gdb-follow-child-stale-parent.patch
|
|||||||
#=fedoratest: ccache is rarely used and it is even fixed now.
|
#=fedoratest: ccache is rarely used and it is even fixed now.
|
||||||
Patch403: gdb-ccache-workaround.patch
|
Patch403: gdb-ccache-workaround.patch
|
||||||
|
|
||||||
# Implement `info common' for Fortran.
|
|
||||||
#=push
|
|
||||||
Patch404: gdb-fortran-common-reduce.patch
|
|
||||||
#=push
|
|
||||||
Patch405: gdb-fortran-common.patch
|
|
||||||
|
|
||||||
# Testcase for "Do not make up line information" fix by Daniel Jacobowitz.
|
# Testcase for "Do not make up line information" fix by Daniel Jacobowitz.
|
||||||
#=fedoratest
|
#=fedoratest
|
||||||
Patch407: gdb-lineno-makeup-test.patch
|
Patch407: gdb-lineno-makeup-test.patch
|
||||||
@ -476,10 +466,6 @@ Patch491: gdb-gdb-add-index-script.patch
|
|||||||
#=drop+work: Inferior objects should be read in parts, then this patch gets obsoleted.
|
#=drop+work: Inferior objects should be read in parts, then this patch gets obsoleted.
|
||||||
Patch496: gdb-bz568248-oom-is-error.patch
|
Patch496: gdb-bz568248-oom-is-error.patch
|
||||||
|
|
||||||
# Fix gcore writer for -Wl,-z,relro (PR corefiles/11804).
|
|
||||||
#=push: There is different patch on gdb-patches, waiting now for resolution in kernel.
|
|
||||||
Patch504: gdb-bz623749-gcore-relro.patch
|
|
||||||
|
|
||||||
# Verify GDB Python built-in function gdb.solib_address exists (BZ # 634108).
|
# Verify GDB Python built-in function gdb.solib_address exists (BZ # 634108).
|
||||||
#=fedoratest
|
#=fedoratest
|
||||||
Patch526: gdb-bz634108-solib_address.patch
|
Patch526: gdb-bz634108-solib_address.patch
|
||||||
@ -512,8 +498,6 @@ Patch579: gdb-7.2.50-sparc-add-workaround-to-broken-debug-files.patch
|
|||||||
|
|
||||||
# Fix dlopen of libpthread.so, patched glibc required (Gary Benson, BZ 669432).
|
# Fix dlopen of libpthread.so, patched glibc required (Gary Benson, BZ 669432).
|
||||||
#=push
|
#=push
|
||||||
Patch618: gdb-dlopen-stap-probe-1of7.patch
|
|
||||||
Patch717: gdb-dlopen-stap-probe-2of7.patch
|
|
||||||
Patch718: gdb-dlopen-stap-probe-3of7.patch
|
Patch718: gdb-dlopen-stap-probe-3of7.patch
|
||||||
Patch719: gdb-dlopen-stap-probe-4of7.patch
|
Patch719: gdb-dlopen-stap-probe-4of7.patch
|
||||||
Patch720: gdb-dlopen-stap-probe-5of7.patch
|
Patch720: gdb-dlopen-stap-probe-5of7.patch
|
||||||
@ -550,7 +534,7 @@ Patch657: gdb-attach-fail-reasons-5of5configure.patch
|
|||||||
Patch661: gdb-stale-frame_info.patch
|
Patch661: gdb-stale-frame_info.patch
|
||||||
|
|
||||||
# Workaround PR libc/14166 for inferior calls of strstr.
|
# Workaround PR libc/14166 for inferior calls of strstr.
|
||||||
#=push+work: But push it to glibc.
|
#=fedora: Compatibility with RHELs (unchecked which ones).
|
||||||
Patch690: gdb-glibc-strstr-workaround.patch
|
Patch690: gdb-glibc-strstr-workaround.patch
|
||||||
|
|
||||||
# Include testcase for `Unable to see a variable inside a module (XLF)' (BZ 823789).
|
# Include testcase for `Unable to see a variable inside a module (XLF)' (BZ 823789).
|
||||||
@ -562,50 +546,18 @@ Patch698: gdb-rhel5.9-testcase-xlf-var-inside-mod.patch
|
|||||||
#=fedoratest
|
#=fedoratest
|
||||||
Patch703: gdb-rhbz-818343-set-solib-absolute-prefix-testcase.patch
|
Patch703: gdb-rhbz-818343-set-solib-absolute-prefix-testcase.patch
|
||||||
|
|
||||||
# Implement MiniDebugInfo F-18 Feature consumer (Alexander Larsson, BZ 834068).
|
|
||||||
#=fedora
|
|
||||||
Patch716: gdb-minidebuginfo.patch
|
|
||||||
|
|
||||||
# Fix crash printing classes (BZ 849357, Tom Tromey).
|
|
||||||
Patch726: gdb-print-class.patch
|
|
||||||
|
|
||||||
# Permit passing pointers as address number even for C++ methods (Keith Seitz).
|
|
||||||
Patch728: gdb-check-type.patch
|
|
||||||
|
|
||||||
# entry values: Fix resolving in inlined frames.
|
|
||||||
Patch729: gdb-entryval-inlined.patch
|
|
||||||
|
|
||||||
# Fix `GDB cannot access struct member whose offset is larger than 256MB'
|
# Fix `GDB cannot access struct member whose offset is larger than 256MB'
|
||||||
# (RH BZ 795424).
|
# (RH BZ 795424).
|
||||||
Patch797: gdb-rhbz795424-bitpos-06of25.patch
|
|
||||||
Patch798: gdb-rhbz795424-bitpos-07of25.patch
|
|
||||||
Patch799: gdb-rhbz795424-bitpos-08of25.patch
|
|
||||||
Patch800: gdb-rhbz795424-bitpos-09of25.patch
|
|
||||||
Patch801: gdb-rhbz795424-bitpos-10of25.patch
|
|
||||||
Patch802: gdb-rhbz795424-bitpos-11of25.patch
|
|
||||||
Patch803: gdb-rhbz795424-bitpos-12of25.patch
|
|
||||||
Patch804: gdb-rhbz795424-bitpos-13of25.patch
|
|
||||||
Patch805: gdb-rhbz795424-bitpos-14of25.patch
|
|
||||||
Patch806: gdb-rhbz795424-bitpos-15of25.patch
|
|
||||||
Patch807: gdb-rhbz795424-bitpos-16of25.patch
|
|
||||||
Patch808: gdb-rhbz795424-bitpos-17of25.patch
|
|
||||||
Patch809: gdb-rhbz795424-bitpos-18of25.patch
|
|
||||||
Patch810: gdb-rhbz795424-bitpos-19of25.patch
|
|
||||||
Patch811: gdb-rhbz795424-bitpos-20of25.patch
|
Patch811: gdb-rhbz795424-bitpos-20of25.patch
|
||||||
Patch812: gdb-rhbz795424-bitpos-21of25.patch
|
Patch812: gdb-rhbz795424-bitpos-21of25.patch
|
||||||
Patch813: gdb-rhbz795424-bitpos-22of25.patch
|
Patch813: gdb-rhbz795424-bitpos-22of25.patch
|
||||||
Patch814: gdb-rhbz795424-bitpos-23of25.patch
|
Patch814: gdb-rhbz795424-bitpos-23of25.patch
|
||||||
Patch815: gdb-rhbz795424-bitpos-24of25.patch
|
|
||||||
Patch816: gdb-rhbz795424-bitpos-25of25.patch
|
Patch816: gdb-rhbz795424-bitpos-25of25.patch
|
||||||
Patch817: gdb-rhbz795424-bitpos-25of25-test.patch
|
Patch817: gdb-rhbz795424-bitpos-25of25-test.patch
|
||||||
Patch818: gdb-rhbz795424-bitpos-lazyvalue.patch
|
Patch818: gdb-rhbz795424-bitpos-lazyvalue.patch
|
||||||
|
|
||||||
# Fix DW_OP_GNU_implicit_pointer offset bug (Tom Tromey).
|
# Fix gdb.fortran/common-block.exp in PIE mode.
|
||||||
Patch819: gdb-implicitpointer-offset.patch
|
Patch823: gdb-commonblock-pie.patch
|
||||||
|
|
||||||
# [ppc*] Fix PowerPC disassembly regression (Alan Modra, Edjunior Machado).
|
|
||||||
Patch820: gdb-rhbz890900-ppc-dis-1of2.patch
|
|
||||||
Patch821: gdb-rhbz890900-ppc-dis-2of2.patch
|
|
||||||
|
|
||||||
%if 0%{!?rhel:1} || 0%{?rhel} > 6
|
%if 0%{!?rhel:1} || 0%{?rhel} > 6
|
||||||
# RL_STATE_FEDORA_GDB would not be found for:
|
# RL_STATE_FEDORA_GDB would not be found for:
|
||||||
@ -806,7 +758,7 @@ find -name "*.info*"|xargs rm -f
|
|||||||
%patch2 -p1
|
%patch2 -p1
|
||||||
|
|
||||||
%patch349 -p1
|
%patch349 -p1
|
||||||
%patch232 -p1
|
#patch232 -p1
|
||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
%patch3 -p1
|
%patch3 -p1
|
||||||
|
|
||||||
@ -869,7 +821,6 @@ find -name "*.info*"|xargs rm -f
|
|||||||
%patch320 -p1
|
%patch320 -p1
|
||||||
%patch329 -p1
|
%patch329 -p1
|
||||||
%patch330 -p1
|
%patch330 -p1
|
||||||
%patch331 -p1
|
|
||||||
%patch343 -p1
|
%patch343 -p1
|
||||||
%patch348 -p1
|
%patch348 -p1
|
||||||
%patch360 -p1
|
%patch360 -p1
|
||||||
@ -879,8 +830,6 @@ find -name "*.info*"|xargs rm -f
|
|||||||
%patch392 -p1
|
%patch392 -p1
|
||||||
%patch397 -p1
|
%patch397 -p1
|
||||||
%patch403 -p1
|
%patch403 -p1
|
||||||
%patch404 -p1
|
|
||||||
%patch405 -p1
|
|
||||||
%patch389 -p1
|
%patch389 -p1
|
||||||
%patch394 -p1
|
%patch394 -p1
|
||||||
%patch407 -p1
|
%patch407 -p1
|
||||||
@ -894,14 +843,11 @@ find -name "*.info*"|xargs rm -f
|
|||||||
%patch490 -p1
|
%patch490 -p1
|
||||||
%patch491 -p1
|
%patch491 -p1
|
||||||
%patch496 -p1
|
%patch496 -p1
|
||||||
%patch504 -p1
|
|
||||||
%patch526 -p1
|
%patch526 -p1
|
||||||
%patch542 -p1
|
%patch542 -p1
|
||||||
%patch547 -p1
|
%patch547 -p1
|
||||||
%patch548 -p1
|
%patch548 -p1
|
||||||
%patch579 -p1
|
%patch579 -p1
|
||||||
%patch618 -p1
|
|
||||||
%patch717 -p1
|
|
||||||
%patch718 -p1
|
%patch718 -p1
|
||||||
%patch719 -p1
|
%patch719 -p1
|
||||||
%patch720 -p1
|
%patch720 -p1
|
||||||
@ -919,35 +865,14 @@ find -name "*.info*"|xargs rm -f
|
|||||||
%patch690 -p1
|
%patch690 -p1
|
||||||
%patch698 -p1
|
%patch698 -p1
|
||||||
%patch703 -p1
|
%patch703 -p1
|
||||||
%patch716 -p1
|
|
||||||
%patch726 -p1
|
|
||||||
%patch728 -p1
|
|
||||||
%patch729 -p1
|
|
||||||
%patch797 -p1
|
|
||||||
%patch798 -p1
|
|
||||||
%patch799 -p1
|
|
||||||
%patch800 -p1
|
|
||||||
%patch801 -p1
|
|
||||||
%patch802 -p1
|
|
||||||
%patch803 -p1
|
|
||||||
%patch804 -p1
|
|
||||||
%patch805 -p1
|
|
||||||
%patch806 -p1
|
|
||||||
%patch807 -p1
|
|
||||||
%patch808 -p1
|
|
||||||
%patch809 -p1
|
|
||||||
%patch810 -p1
|
|
||||||
%patch811 -p1
|
%patch811 -p1
|
||||||
%patch812 -p1
|
%patch812 -p1
|
||||||
%patch813 -p1
|
%patch813 -p1
|
||||||
%patch814 -p1
|
%patch814 -p1
|
||||||
%patch815 -p1
|
|
||||||
%patch816 -p1
|
%patch816 -p1
|
||||||
%patch817 -p1
|
%patch817 -p1
|
||||||
%patch818 -p1
|
%patch818 -p1
|
||||||
%patch819 -p1
|
%patch823 -p1
|
||||||
%patch820 -p1
|
|
||||||
%patch821 -p1
|
|
||||||
|
|
||||||
%patch393 -p1
|
%patch393 -p1
|
||||||
%if 0%{!?el5:1} || 0%{?scl:1}
|
%if 0%{!?el5:1} || 0%{?scl:1}
|
||||||
@ -1446,6 +1371,9 @@ fi
|
|||||||
%endif # 0%{!?el5:1} || "%{_target_cpu}" == "noarch"
|
%endif # 0%{!?el5:1} || "%{_target_cpu}" == "noarch"
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sat Jan 19 2013 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.5.50.20130118-1.fc19
|
||||||
|
- Rebase to FSF GDB 7.5.50.20130118 (pre-7.6 snapshot).
|
||||||
|
|
||||||
* Sun Jan 13 2013 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.5.1-35.fc18
|
* Sun Jan 13 2013 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.5.1-35.fc18
|
||||||
- [testsuite] Fix gdb-orphanripper.c lockup on F-17 (/dev/pts/* glibc chown).
|
- [testsuite] Fix gdb-orphanripper.c lockup on F-17 (/dev/pts/* glibc chown).
|
||||||
|
|
||||||
@ -3014,7 +2942,7 @@ fi
|
|||||||
* Sun Oct 14 2007 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.6-36
|
* Sun Oct 14 2007 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.6-36
|
||||||
- Fix hardware watchpoints after inferior forks-off some process.
|
- Fix hardware watchpoints after inferior forks-off some process.
|
||||||
|
|
||||||
* Fri Oct 13 2007 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.6-35
|
* Sat Oct 13 2007 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.6-35
|
||||||
- Fix non-threaded watchpoints CTRL-C regression on `set follow child'.
|
- Fix non-threaded watchpoints CTRL-C regression on `set follow child'.
|
||||||
|
|
||||||
* Fri Oct 12 2007 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.6-34
|
* Fri Oct 12 2007 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.6-34
|
||||||
@ -3161,7 +3089,7 @@ fi
|
|||||||
* Mon Jan 15 2007 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.5-27
|
* Mon Jan 15 2007 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.5-27
|
||||||
- Fix the testsuite results broken in 6.5-26, stop invalid testsuite runs.
|
- Fix the testsuite results broken in 6.5-26, stop invalid testsuite runs.
|
||||||
|
|
||||||
* Fri Jan 13 2007 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.5-26
|
* Sat Jan 13 2007 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.5-26
|
||||||
- Fix unwinding of non-debug (.eh_frame) PPC code, Andreas Schwab (BZ 140532).
|
- Fix unwinding of non-debug (.eh_frame) PPC code, Andreas Schwab (BZ 140532).
|
||||||
- Fix unwinding of debug (.debug_frame) PPC code, workaround GCC (BZ 140532).
|
- Fix unwinding of debug (.debug_frame) PPC code, workaround GCC (BZ 140532).
|
||||||
- Fix missing testsuite .log output of testcases using get_compiler_info().
|
- Fix missing testsuite .log output of testcases using get_compiler_info().
|
||||||
@ -3195,16 +3123,16 @@ fi
|
|||||||
* Sat Nov 25 2006 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.5-18
|
* Sat Nov 25 2006 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.5-18
|
||||||
- Fix readline history for input mode commands like `command' (BZ 215816).
|
- Fix readline history for input mode commands like `command' (BZ 215816).
|
||||||
|
|
||||||
* Wed Nov 16 2006 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.5-17
|
* Thu Nov 16 2006 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.5-17
|
||||||
- Bugfix testcase typo of gdb-6.5-16.
|
- Bugfix testcase typo of gdb-6.5-16.
|
||||||
|
|
||||||
* Wed Nov 16 2006 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.5-16
|
* Thu Nov 16 2006 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.5-16
|
||||||
- Provide testcase for accessing the last address space byte.
|
- Provide testcase for accessing the last address space byte.
|
||||||
|
|
||||||
* Wed Nov 9 2006 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.5-15
|
* Thu Nov 9 2006 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.5-15
|
||||||
- Fix readline segfault on excessively long hand-typed lines.
|
- Fix readline segfault on excessively long hand-typed lines.
|
||||||
|
|
||||||
* Sat Nov 2 2006 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.5-14
|
* Thu Nov 2 2006 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.5-14
|
||||||
- Fix "??" resolving of symbols from (non-prelinked) debuginfo packages.
|
- Fix "??" resolving of symbols from (non-prelinked) debuginfo packages.
|
||||||
- Fix "??" resolving of symbols from overlapping functions (nanosleep(3)).
|
- Fix "??" resolving of symbols from overlapping functions (nanosleep(3)).
|
||||||
- Also disable testcase "checkpoint.exp" for a possible kernel Bug 207002.
|
- Also disable testcase "checkpoint.exp" for a possible kernel Bug 207002.
|
||||||
@ -3227,7 +3155,7 @@ fi
|
|||||||
- Support IPv6 for gdbserver (BZ 198365).
|
- Support IPv6 for gdbserver (BZ 198365).
|
||||||
- Temporarily disable testcase "chng-syms.exp" for a possible kernel Bug 207002.
|
- Temporarily disable testcase "chng-syms.exp" for a possible kernel Bug 207002.
|
||||||
|
|
||||||
* Wed Sep 21 2006 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.5-9
|
* Thu Sep 21 2006 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.5-9
|
||||||
- Fix crash on C++ symbol failing to be demangled (BZ 206813).
|
- Fix crash on C++ symbol failing to be demangled (BZ 206813).
|
||||||
- Fix attach to stopped process, supersede `gdb-6.3-attach-stop-20051011.patch'.
|
- Fix attach to stopped process, supersede `gdb-6.3-attach-stop-20051011.patch'.
|
||||||
- Fix TLS symbols resolving for objects with separate .debug file (-debuginfo).
|
- Fix TLS symbols resolving for objects with separate .debug file (-debuginfo).
|
||||||
@ -3762,11 +3690,11 @@ Bugzilla 135633
|
|||||||
- For 64-bit PPC, convert _dl_debug_state descriptor into a code address.
|
- For 64-bit PPC, convert _dl_debug_state descriptor into a code address.
|
||||||
- Fix --ignore option.
|
- Fix --ignore option.
|
||||||
|
|
||||||
* Mon Oct 10 2004 Andrew Cagney <cagney@redhat.com> - 1.200400607.40
|
* Sun Oct 10 2004 Andrew Cagney <cagney@redhat.com> - 1.200400607.40
|
||||||
- Disable attach-pie.exp test, hangs on amd64 without auxv.
|
- Disable attach-pie.exp test, hangs on amd64 without auxv.
|
||||||
- Move pie tests to pie.
|
- Move pie tests to pie.
|
||||||
|
|
||||||
* Mon Oct 10 2004 Andrew Cagney <cagney@redhat.com> - 1.200400607.39
|
* Sun Oct 10 2004 Andrew Cagney <cagney@redhat.com> - 1.200400607.39
|
||||||
- Fix comment bug in sigstep.exp.
|
- Fix comment bug in sigstep.exp.
|
||||||
|
|
||||||
* Thu Oct 07 2004 Jeff Johnston <jjohnstn@redhat.com> - 1.200400607.38
|
* Thu Oct 07 2004 Jeff Johnston <jjohnstn@redhat.com> - 1.200400607.38
|
||||||
@ -3939,17 +3867,17 @@ Bugzilla 135633
|
|||||||
* Tue Mar 30 2004 Elena Zannoni <ezannoni@redhat.com> - 0.20040223.13
|
* Tue Mar 30 2004 Elena Zannoni <ezannoni@redhat.com> - 0.20040223.13
|
||||||
- Fix testsuite glitches.
|
- Fix testsuite glitches.
|
||||||
|
|
||||||
* Thu Mar 24 2004 Elena Zannoni <ezannoni@redhat.com> - 0.20040223.12
|
* Wed Mar 24 2004 Elena Zannoni <ezannoni@redhat.com> - 0.20040223.12
|
||||||
- Fix typo.
|
- Fix typo.
|
||||||
|
|
||||||
* Thu Mar 24 2004 Elena Zannoni <ezannoni@redhat.com> - 0.20040223.11
|
* Wed Mar 24 2004 Elena Zannoni <ezannoni@redhat.com> - 0.20040223.11
|
||||||
- Make gdb compile w/o warnings with gcc-3.4.
|
- Make gdb compile w/o warnings with gcc-3.4.
|
||||||
- Reenable PIE support code.
|
- Reenable PIE support code.
|
||||||
|
|
||||||
* Wed Mar 23 2004 Elena Zannoni <ezannoni@redhat.com> - 0.20040223.10
|
* Tue Mar 23 2004 Elena Zannoni <ezannoni@redhat.com> - 0.20040223.10
|
||||||
- Bump version number
|
- Bump version number
|
||||||
|
|
||||||
* Wed Mar 23 2004 Elena Zannoni <ezannoni@redhat.com> - 0.20040223.9
|
* Tue Mar 23 2004 Elena Zannoni <ezannoni@redhat.com> - 0.20040223.9
|
||||||
- temporarily disable PIE support.
|
- temporarily disable PIE support.
|
||||||
- Add section to obsolete gdb64 package.
|
- Add section to obsolete gdb64 package.
|
||||||
|
|
||||||
@ -4138,7 +4066,7 @@ to pointers when the address is in the ".opd" section.
|
|||||||
* Wed Aug 06 2003 Andrew Cagney <cagney@redhat.com> - 0.20030710.10
|
* Wed Aug 06 2003 Andrew Cagney <cagney@redhat.com> - 0.20030710.10
|
||||||
- Sync to gdb-5.3.90-sync-20030806.patch.
|
- Sync to gdb-5.3.90-sync-20030806.patch.
|
||||||
|
|
||||||
* Wed Jul 29 2003 Andrew Cagney <cagney@redhat.com> - 0.20030710.9
|
* Tue Jul 29 2003 Andrew Cagney <cagney@redhat.com> - 0.20030710.9
|
||||||
- add x86-64 i386 fixes
|
- add x86-64 i386 fixes
|
||||||
|
|
||||||
* Tue Jul 29 2003 Elena Zannoni <ezannoni@redhat.com> - 0.20030710.8
|
* Tue Jul 29 2003 Elena Zannoni <ezannoni@redhat.com> - 0.20030710.8
|
||||||
@ -4525,7 +4453,7 @@ General revamp.
|
|||||||
* Fri Mar 16 2001 Trond Eivind Glomsrod <teg@redhat.com>
|
* Fri Mar 16 2001 Trond Eivind Glomsrod <teg@redhat.com>
|
||||||
- build with old headers, new compiler
|
- build with old headers, new compiler
|
||||||
|
|
||||||
* Wed Mar 16 2001 Trond Eivind Glomsrod <teg@redhat.com>
|
* Fri Mar 16 2001 Trond Eivind Glomsrod <teg@redhat.com>
|
||||||
- new snapshot
|
- new snapshot
|
||||||
|
|
||||||
* Mon Feb 26 2001 Trond Eivind Glomsrod <teg@redhat.com>
|
* Mon Feb 26 2001 Trond Eivind Glomsrod <teg@redhat.com>
|
||||||
@ -4548,7 +4476,7 @@ General revamp.
|
|||||||
* Fri Jan 19 2001 Trond Eivind Glomsrod <teg@redhat.com>
|
* Fri Jan 19 2001 Trond Eivind Glomsrod <teg@redhat.com>
|
||||||
- new snapshot
|
- new snapshot
|
||||||
|
|
||||||
* Thu Dec 20 2000 Trond Eivind Glomsrod <teg@redhat.com>
|
* Wed Dec 20 2000 Trond Eivind Glomsrod <teg@redhat.com>
|
||||||
- new snapshot
|
- new snapshot
|
||||||
|
|
||||||
* Mon Dec 04 2000 Trond Eivind Glomsrod <teg@redhat.com>
|
* Mon Dec 04 2000 Trond Eivind Glomsrod <teg@redhat.com>
|
||||||
@ -4568,7 +4496,7 @@ General revamp.
|
|||||||
* Wed Aug 09 2000 Trond Eivind Glomsrod <teg@redhat.com>
|
* Wed Aug 09 2000 Trond Eivind Glomsrod <teg@redhat.com>
|
||||||
- added patch from GDB team for C++ symbol handling
|
- added patch from GDB team for C++ symbol handling
|
||||||
|
|
||||||
* Mon Jul 25 2000 Trond Eivind Glomsrod <teg@redhat.com>
|
* Tue Jul 25 2000 Trond Eivind Glomsrod <teg@redhat.com>
|
||||||
- upgrade to CVS snapshot
|
- upgrade to CVS snapshot
|
||||||
- excludearch SPARC, build on IA61
|
- excludearch SPARC, build on IA61
|
||||||
|
|
||||||
@ -4581,7 +4509,7 @@ General revamp.
|
|||||||
* Sun Jul 02 2000 Trond Eivind Glomsrod <teg@redhat.com>
|
* Sun Jul 02 2000 Trond Eivind Glomsrod <teg@redhat.com>
|
||||||
- rebuild
|
- rebuild
|
||||||
|
|
||||||
* Fri Jun 08 2000 Trond Eivind Glomsrod <teg@redhat.com>
|
* Thu Jun 08 2000 Trond Eivind Glomsrod <teg@redhat.com>
|
||||||
- use %%configure, %%makeinstall, %%{_infodir}, %%{_mandir},
|
- use %%configure, %%makeinstall, %%{_infodir}, %%{_mandir},
|
||||||
and %%{_tmppath}
|
and %%{_tmppath}
|
||||||
- the install scripts for info are broken(they don't care about
|
- the install scripts for info are broken(they don't care about
|
||||||
@ -4620,7 +4548,7 @@ sigtramp, sparc, xref, and threads patches. Update sparcmin patch.
|
|||||||
* Mon Aug 23 1999 Jim Kingdon
|
* Mon Aug 23 1999 Jim Kingdon
|
||||||
- Omit readline manpage.
|
- Omit readline manpage.
|
||||||
|
|
||||||
* Tue Aug 7 1999 Jim Kingdon
|
* Sat Aug 7 1999 Jim Kingdon
|
||||||
- Remove H.J. Lu's patches (they had been commented out).
|
- Remove H.J. Lu's patches (they had been commented out).
|
||||||
- Add sigtramp patch (from gdb.cygnus.com) and threads patch (adapted
|
- Add sigtramp patch (from gdb.cygnus.com) and threads patch (adapted
|
||||||
from code fusion CD-ROM).
|
from code fusion CD-ROM).
|
||||||
|
Loading…
Reference in New Issue
Block a user