mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2025-02-22 18:42:10 +00:00
Sun Aug 30 00:49:18 1998 Martin M. Hunt <hunt@cygnus.com>
* gdbtk-cmds.c (Gdbtk_Init): Link C variable gdb_context with tcl variable gdb_context_id. * gdbtk-hooks.c (gdbtk_context_change): Implement new hook called context_hook. Called when threads change. * gdbtk.c: Initialize gdb_context. * gdbtk.h: Declare gdb_context. * infrun (wait_for_inferior): Call context_hook. * thread.c (thread_command): Call context_hook. * defs.h: Declare context_hook.
This commit is contained in:
parent
d405c4a1ae
commit
4ff5d55a08
@ -1,3 +1,21 @@
|
||||
Sun Aug 30 00:49:18 1998 Martin M. Hunt <hunt@cygnus.com>
|
||||
|
||||
* gdbtk-cmds.c (Gdbtk_Init): Link C variable gdb_context
|
||||
with tcl variable gdb_context_id.
|
||||
|
||||
* gdbtk-hooks.c (gdbtk_context_change): Implement new hook called
|
||||
context_hook. Called when threads change.
|
||||
|
||||
* gdbtk.c: Initialize gdb_context.
|
||||
|
||||
* gdbtk.h: Declare gdb_context.
|
||||
|
||||
* infrun (wait_for_inferior): Call context_hook.
|
||||
|
||||
* thread.c (thread_command): Call context_hook.
|
||||
|
||||
* defs.h: Declare context_hook.
|
||||
|
||||
Fri Aug 28 12:14:49 1998 Martin M. Hunt <hunt@cygnus.com>
|
||||
|
||||
* gdbtk-cmds.c (gdb_loadfile): Open the file after doing
|
||||
|
@ -304,10 +304,15 @@ Gdbtk_Init (interp)
|
||||
call_wrapper, gdb_get_trace_frame_num, NULL);
|
||||
Tcl_CreateObjCommand (interp, "gdb_stack", call_wrapper, gdb_stack, NULL);
|
||||
|
||||
Tcl_LinkVar (interp, "gdb_selected_frame_level",
|
||||
Tcl_LinkVar (interp, "gdb_selected_frame_level",
|
||||
(char *) &selected_frame_level,
|
||||
TCL_LINK_INT | TCL_LINK_READ_ONLY);
|
||||
|
||||
/* gdb_context is used for debugging multiple threads or tasks */
|
||||
Tcl_LinkVar (interp, "gdb_context_id",
|
||||
(char *) &gdb_context,
|
||||
TCL_LINK_INT | TCL_LINK_READ_ONLY);
|
||||
|
||||
Tcl_PkgProvide(interp, "Gdbtk", GDBTK_VERSION);
|
||||
return TCL_OK;
|
||||
}
|
||||
|
@ -110,6 +110,8 @@ static void gdbtk_post_add_symbol PARAMS ((void));
|
||||
static void pc_changed PARAMS ((void));
|
||||
static void tracepoint_notify PARAMS ((struct tracepoint *, const char *));
|
||||
static void gdbtk_selected_frame_changed PARAMS ((int));
|
||||
static void gdbtk_context_change PARAMS ((int));
|
||||
void (*context_hook) PARAMS ((int));
|
||||
|
||||
/*
|
||||
* gdbtk_fputs can't be static, because we need to call it in gdbtk.c.
|
||||
@ -157,7 +159,7 @@ gdbtk_add_hooks(void)
|
||||
modify_tracepoint_hook = gdbtk_modify_tracepoint;
|
||||
pc_changed_hook = pc_changed;
|
||||
selected_frame_level_changed_hook = gdbtk_selected_frame_changed;
|
||||
|
||||
context_hook = gdbtk_context_change;
|
||||
}
|
||||
|
||||
/* These control where to put the gdb output which is created by
|
||||
@ -690,3 +692,12 @@ gdbtk_selected_frame_changed (level)
|
||||
{
|
||||
Tcl_UpdateLinkedVar (gdbtk_interp, "gdb_selected_frame_level");
|
||||
}
|
||||
|
||||
/* Called when the current thread changes. */
|
||||
/* gdb_context is linked to the tcl variable "gdb_context_id" */
|
||||
static void
|
||||
gdbtk_context_change (num)
|
||||
int num;
|
||||
{
|
||||
gdb_context = num;
|
||||
}
|
||||
|
@ -102,21 +102,21 @@ Tcl_Interp *gdbtk_interp = NULL;
|
||||
|
||||
static int gdbtk_timer_going = 0;
|
||||
|
||||
/* linked variable used to tell tcl what the current thread is */
|
||||
int gdb_context = 0;
|
||||
|
||||
/* This variable is true when the inferior is running. See note in
|
||||
* gdbtk.h for details.
|
||||
*/
|
||||
|
||||
int running_now;
|
||||
|
||||
/* This variable determines where memory used for disassembly is read from.
|
||||
* See note in gdbtk.h for details.
|
||||
*/
|
||||
|
||||
int disassemble_from_exec = -1;
|
||||
|
||||
/* This variable holds the name of a Tcl file which should be sourced by the
|
||||
interpreter when it goes idle at startup. Used with the testsuite. */
|
||||
|
||||
static char *gdbtk_source_filename = NULL;
|
||||
|
||||
#ifndef _WIN32
|
||||
|
@ -120,6 +120,9 @@ typedef struct gdbtk_result {
|
||||
|
||||
extern gdbtk_result *result_ptr;
|
||||
|
||||
/* GDB context identifier */
|
||||
extern int gdb_context;
|
||||
|
||||
/*
|
||||
* These functions are used in all the modules of Gdbtk.
|
||||
*
|
||||
|
@ -518,7 +518,8 @@ see the IDs of currently known threads.", num);
|
||||
error ("Thread ID %d has terminated.\n", num);
|
||||
|
||||
switch_to_thread (tp->pid);
|
||||
|
||||
if (context_hook)
|
||||
context_hook (num);
|
||||
printf_filtered ("[Switching to %s]\n", target_pid_to_str (inferior_pid));
|
||||
print_stack_frame (selected_frame, selected_frame_level, 1);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user