[geany/geany-plugins] 44c8d3: debugger: Add debugger module-level support for switching threads
Colomban Wendling
git-noreply at xxxxx
Mon Feb 8 21:38:07 UTC 2016
Branch: refs/heads/master
Author: Colomban Wendling <ban at herbesfolles.org>
Committer: Colomban Wendling <ban at herbesfolles.org>
Date: Mon, 08 Feb 2016 21:38:07 UTC
Commit: 44c8d36ca97ef76b9a991c3775fc431297b20542
https://github.com/geany/geany-plugins/commit/44c8d36ca97ef76b9a991c3775fc431297b20542
Log Message:
-----------
debugger: Add debugger module-level support for switching threads
Modified Paths:
--------------
debugger/src/dbm_gdb.c
debugger/src/debug_module.h
Modified: debugger/src/dbm_gdb.c
28 lines changed, 28 insertions(+), 0 deletions(-)
===================================================================
@@ -1073,6 +1073,34 @@ static void set_active_frame(int frame_number)
g_free(command);
}
+static int get_active_thread(void)
+{
+ struct gdb_mi_record *record = NULL;
+ int current_thread = 0;
+
+ if (RC_DONE == exec_sync_command("-thread-info", TRUE, &record))
+ {
+ const gchar *id = gdb_mi_result_var(record->first, "current-thread-id", GDB_MI_VAL_STRING);
+ current_thread = id ? atoi(id) : 0;
+ }
+ gdb_mi_record_free(record);
+
+ return current_thread;
+}
+
+static gboolean set_active_thread(int thread_id)
+{
+ gchar *command = g_strdup_printf("-thread-select %i", thread_id);
+ gboolean success = (RC_DONE == exec_sync_command(command, TRUE, NULL));
+
+ if (success)
+ set_active_frame(0);
+
+ g_free(command);
+
+ return success;
+}
+
/*
* gets stack
*/
Modified: debugger/src/debug_module.h
7 lines changed, 6 insertions(+), 1 deletions(-)
===================================================================
@@ -121,7 +121,10 @@ typedef struct _dbg_module {
void (*set_active_frame)(int frame_number);
int (*get_active_frame)(void);
-
+
+ gboolean (*set_active_thread)(int thread_id);
+ int (*get_active_thread)(void);
+
GList* (*get_autos) (void);
GList* (*get_watches) (void);
@@ -155,6 +158,8 @@ typedef struct _dbg_module {
get_stack, \
set_active_frame, \
get_active_frame, \
+ set_active_thread, \
+ get_active_thread, \
get_autos, \
get_watches, \
get_files, \
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).
More information about the Plugins-Commits
mailing list