aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorKeith Seitz <keiths@cygnus>1998-02-11 02:33:22 +0000
committerKeith Seitz <keiths@cygnus>1998-02-11 02:33:22 +0000
commita5f4fbff1d7bb92016ad30c287c2a15e3c28ee54 (patch)
tree357646ec216a1c8b1a8675ee2168fb4a9ef90bc0 /gdb
parentbae2276c5b0326080c8c66b0f2f145f42638c742 (diff)
downloadgdb-a5f4fbff1d7bb92016ad30c287c2a15e3c28ee54.zip
gdb-a5f4fbff1d7bb92016ad30c287c2a15e3c28ee54.tar.gz
gdb-a5f4fbff1d7bb92016ad30c287c2a15e3c28ee54.tar.bz2
* tracepoint.c (tracepoint_operation): Call the modify_tracepoint_hook
if it exists. Remove static declaration of free_actions. * tracepoint.h: Add declaration of free_actions. * gdbtk.c (gdbtk_modify_tracepoint): Define new tracepoint modification hook. (gdbtk_print_frame_info): Define this hook so that current_source_symtab is set properly. (gdb_actions_command): Use free_actions () from tracepoint.c/h.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog13
-rw-r--r--gdb/ChangeLog-gdbtk7
-rw-r--r--gdb/gdbtk.c35
-rw-r--r--gdb/tracepoint.c8
-rw-r--r--gdb/tracepoint.h2
5 files changed, 52 insertions, 13 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index b0c32de..9cd35fa 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,16 @@
+Tue Feb 10 17:50:37 1998 Keith Seitz <keiths@onions.cygnus.com>
+
+ * tracepoint.c (tracepoint_operation): Call the modify_tracepoint_hook
+ if it exists.
+ Remove static declaration of free_actions.
+
+ * tracepoint.h: Add declaration of free_actions.
+
+Tue Feb 10 12:17:13 1998 Fred Fish <fnf@cygnus.com>
+
+ * symtab.c (decode_line_1): Revert change that mistakenly
+ removed assignment of sals[0].pc field.
+
Mon Feb 10 12:37:47 1998 Philippe De Muyter <phdm@macqel.be>
* m68k/tm-delta68.h (EXTRACT_RETURN_VALUE): Type argument for
diff --git a/gdb/ChangeLog-gdbtk b/gdb/ChangeLog-gdbtk
index 7873d96..871edff 100644
--- a/gdb/ChangeLog-gdbtk
+++ b/gdb/ChangeLog-gdbtk
@@ -1,3 +1,10 @@
+Tue Feb 10 17:50:37 1998 Keith Seitz <keiths@onions.cygnus.com>
+
+ * gdbtk.c (gdbtk_modify_tracepoint): Define new tracepoint modification hook.
+ (gdbtk_print_frame_info): Define this hook so that current_source_symtab
+ is set properly.
+ (gdb_actions_command): Use free_actions () from tracepoint.c/h.
+
Mon Jan 26 11:37:55 1998 Keith Seitz <keiths@onions.cygnus.com>
* gdbtk.c (gdb_actions_command): Make note of next action
diff --git a/gdb/gdbtk.c b/gdb/gdbtk.c
index 63cb938..6041f71 100644
--- a/gdb/gdbtk.c
+++ b/gdb/gdbtk.c
@@ -1,5 +1,5 @@
/* Tcl/Tk interface routines.
- Copyright 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
+ Copyright 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
Written by Stu Grossman <grossman@cygnus.com> of Cygnus Support.
@@ -151,7 +151,9 @@ static char *find_file_in_dir PARAMS ((char *));
static int gdb_get_tracepoint_list PARAMS ((ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]));
static void gdbtk_create_tracepoint PARAMS ((struct tracepoint *));
static void gdbtk_delete_tracepoint PARAMS ((struct tracepoint *));
+static void gdbtk_modify_tracepoint PARAMS ((struct tracepoint *));
static void tracepoint_notify PARAMS ((struct tracepoint *, const char *));
+static void gdbtk_print_frame_info PARAMS ((struct symtab *, int, int, int));
void gdbtk_pre_add_symbol PARAMS ((char *));
void gdbtk_post_add_symbol PARAMS ((void));
@@ -2077,8 +2079,7 @@ gdbtk_init ( argv0 )
gdb_get_tracepoint_list, NULL, NULL);
command_loop_hook = tk_command_loop;
- print_frame_info_listing_hook =
- (void (*) PARAMS ((struct symtab *, int, int, int))) null_routine;
+ print_frame_info_listing_hook = gdbtk_print_frame_info;
query_hook = gdbtk_query;
flush_hook = gdbtk_flush;
create_breakpoint_hook = gdbtk_create_breakpoint;
@@ -2095,6 +2096,7 @@ gdbtk_init ( argv0 )
post_add_symbol_hook = gdbtk_post_add_symbol;
create_tracepoint_hook = gdbtk_create_tracepoint;
delete_tracepoint_hook = gdbtk_delete_tracepoint;
+ modify_tracepoint_hook = gdbtk_modify_tracepoint;
#ifndef WINNT
/* Get the file descriptor for the X server */
@@ -2611,6 +2613,13 @@ gdbtk_delete_tracepoint (tp)
}
static void
+gdbtk_modify_tracepoint (tp)
+ struct tracepoint *tp;
+{
+ tracepoint_notify (tp, "modify");
+}
+
+static void
tracepoint_notify(tp, action)
struct tracepoint *tp;
const char *action;
@@ -2708,13 +2717,9 @@ gdb_actions_command (clientData, interp, objc, objv)
}
/* Free any existing actions */
- for (temp = tp->actions; temp != NULL; temp = next)
- {
- next = temp->next;
- if (temp->action)
- free (temp->action);
- free (temp);
- }
+ if (tp->actions != NULL)
+ free_actions (tp);
+
step_count = 0;
Tcl_ListObjGetElements (interp, objv[2], &nactions, &actions);
@@ -2920,6 +2925,16 @@ TclDebug (va_alist)
Tcl_Eval (interp, buf);
}
+static void
+gdbtk_print_frame_info (s, line, stopline, noerror)
+ struct symtab *s;
+ int line;
+ int stopline;
+ int noerror;
+{
+ current_source_symtab = s;
+ current_source_line = line;
+}
/* Come here during initialize_all_files () */
diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c
index 936df3d..e77f103 100644
--- a/gdb/tracepoint.c
+++ b/gdb/tracepoint.c
@@ -517,8 +517,6 @@ enum tracepoint_opcode
delete
};
-static void free_actions PARAMS((struct tracepoint *));
-
/* This function implements enable, disable and delete. */
static void
tracepoint_operation (t, from_tty, opcode)
@@ -531,9 +529,13 @@ tracepoint_operation (t, from_tty, opcode)
switch (opcode) {
case enable:
t->enabled = enabled;
+ if (modify_tracepoint_hook)
+ modify_tracepoint_hook (t);
break;
case disable:
t->enabled = disabled;
+ if (modify_tracepoint_hook)
+ modify_tracepoint_hook (t);
break;
case delete:
if (tracepoint_chain == t)
@@ -1005,7 +1007,7 @@ validate_actionline (line, t)
}
/* worker function */
-static void
+void
free_actions (t)
struct tracepoint *t;
{
diff --git a/gdb/tracepoint.h b/gdb/tracepoint.h
index 0ff5982..ad6a7b0 100644
--- a/gdb/tracepoint.h
+++ b/gdb/tracepoint.h
@@ -98,8 +98,10 @@ extern struct tracepoint *tracepoint_chain;
void (*create_tracepoint_hook) PARAMS ((struct tracepoint *));
void (*delete_tracepoint_hook) PARAMS ((struct tracepoint *));
+void (*modify_tracepoint_hook) PARAMS ((struct tracepoint *));
struct tracepoint *get_tracepoint_by_number PARAMS ((char **));
+void free_actions PARAMS((struct tracepoint *));
/* Walk the following statement or block through all tracepoints.
ALL_TRACEPOINTS_SAFE does so even if the statment deletes the current