aboutsummaryrefslogtreecommitdiff
path: root/gdb/tracepoint.c
diff options
context:
space:
mode:
authorMichael Snyder <msnyder@vmware.com>1998-10-29 18:07:01 +0000
committerMichael Snyder <msnyder@vmware.com>1998-10-29 18:07:01 +0000
commit2e7eeba99de6891ada5f4b4661ecb4a9b1084038 (patch)
tree95b42164fd1bf8c3aac508a4f203c51abe142b4f /gdb/tracepoint.c
parent271f091db772c822be71fb8fe803817e44a02e87 (diff)
downloadfsf-binutils-gdb-2e7eeba99de6891ada5f4b4661ecb4a9b1084038.zip
fsf-binutils-gdb-2e7eeba99de6891ada5f4b4661ecb4a9b1084038.tar.gz
fsf-binutils-gdb-2e7eeba99de6891ada5f4b4661ecb4a9b1084038.tar.bz2
Thu Oct 29 10:04:20 1998 Michael Snyder <msnyder@cleaver.cygnus.com>
[Support for trace debugging: registers that were not collected.] * remote.c (remote_fetch_registers): accept 'xxxx' in the register packet, with the meaning "register value is not available". Set register_valid to -1, which will connote "no value available". * findvar.c (read_relative_register_raw_bytes): return failure if register_valid == -1. (value_of_register): return failure if register_valid == -1. (read_var_value): return error if value_of_register fails for a register variable. (value_from_register): return failure if register_valid == -1. * eval.c (evaluate_subexp_standard): return error if value_of_register fails for a register used in an expression. * infcmd.c (do_registers_info): display "value not available" for registers for which register_valid == -1. * tracepoint.c (set_raw_tracepoint): just save the filename as is from the symbol table, rather than trying to prepend the dir name. Also save the bfd section. (tracepoints_info): use the section when looking up the function name. * tracepoint.h: add section field to tracepoint struct.
Diffstat (limited to 'gdb/tracepoint.c')
-rw-r--r--gdb/tracepoint.c29
1 files changed, 5 insertions, 24 deletions
diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c
index d7978dd..e19485f 100644
--- a/gdb/tracepoint.c
+++ b/gdb/tracepoint.c
@@ -332,30 +332,11 @@ set_raw_tracepoint (sal)
if (sal.symtab == NULL)
t->source_file = NULL;
else
- {
- if (sal.symtab->dirname == NULL)
- {
- t->source_file = (char *) xmalloc (strlen (sal.symtab->filename) + 1);
- strcpy (t->source_file, sal.symtab->filename);
- }
- else
- {
- char *p;
-
- t->source_file = (char *) xmalloc (strlen (sal.symtab->filename) +
- strlen (sal.symtab->dirname) + 2);
-
- strcpy (t->source_file, sal.symtab->dirname);
- p = t->source_file;
- while (*p)
- p++;
- if (*(--p) != '/') /* Will this work on Windows? */
- strcat (t->source_file, "/");
- strcat (t->source_file, sal.symtab->filename);
- }
- }
+ t->source_file = savestring (sal.symtab->filename,
+ strlen (sal.symtab->filename));
- t->language = current_language->la_language;
+ t->section = sal.section;
+ t->language = current_language->la_language;
t->input_radix = input_radix;
t->line_number = sal.line;
t->enabled = enabled;
@@ -503,7 +484,7 @@ tracepoints_info (tpnum_exp, from_tty)
if (t->source_file)
{
- sym = find_pc_function (t->address);
+ sym = find_pc_sect_function (t->address, t->section);
if (sym)
{
fputs_filtered ("in ", gdb_stdout);