[geany/geany-plugins] a8349f: scope - option to keep exec marker and Threads location on resume

Dimitar Zhekov git-noreply at geany.org
Sun Dec 23 16:22:36 UTC 2012


Branch:      refs/heads/master
Author:      Dimitar Zhekov <dimitar.zhekov at gmail.com>
Committer:   Dimitar Zhekov <dimitar.zhekov at gmail.com>
Date:        Sun, 23 Dec 2012 16:22:36 UTC
Commit:      a8349f057f3d6359657776256a3aa4cecfb926a6
             https://github.com/geany/geany-plugins/commit/a8349f057f3d6359657776256a3aa4cecfb926a6

Log Message:
-----------
scope - option to keep exec marker and Threads location on resume


Modified Paths:
--------------
    scope/ChangeLog
    scope/NEWS
    scope/docs/scope.html
    scope/src/prefs.c
    scope/src/prefs.h
    scope/src/scope.c
    scope/src/thread.c

Modified: scope/ChangeLog
8 files changed, 8 insertions(+), 0 deletions(-)
===================================================================
@@ -1,3 +1,11 @@
+2012-12-23  Dimitar Zhekov  <dimitar.zhekov at gmail.com>
+
+ * docs/scope.html, src/prefs.c, src/prefs.h, src/thread.c:
+   Added option "keep_exec_point" to keep the execution point marker
+   and Threads location columns when a thread execution is resumed.
+ * docs/scope.html, src/scope.c:
+   Increased version to 0.78.
+
 2012-12-22  Dimitar Zhekov  <dimitar.zhekov at gmail.com>
 
  * NEWS:


Modified: scope/NEWS
5 files changed, 5 insertions(+), 0 deletions(-)
===================================================================
@@ -1,3 +1,8 @@
+Scope 0.78 (2012-12-23)
+
+   * Added option "keep_exec_point" to keep the execution point marker
+     and Threads location columns when a thread execution is resumed.
+
 Scope 0.77 (2012-12-16)
 
    * Support for " and \ in evaluate expressions.


Modified: scope/docs/scope.html
7 files changed, 5 insertions(+), 2 deletions(-)
===================================================================
@@ -477,7 +477,10 @@
 asynchronous break messages. If true, only <tt>=breakpoint-deleted</tt> will be handled.</p>
 
 <p><em>auto_view_source</em> - seek in source on single click in threads, breakpoints
-and stack. Default = Off</p>
+and stack.</p>
+
+<p><em>keep_exec_point</em> - do not clear the execution point marker and <em>Threads</em>
+location columns when a thread execution is resumed.</p>
 
 <p><em>visual_beep_length</em> - hundreds of seconds to flash the state label on Scope
 errors. Default = 25.</p>
@@ -670,7 +673,7 @@
 
 <b><a name="copyright">Copyright</a></b>
 
-<p>Scope 0.77, Copyright (C) 2012 Dimitar Toshkov Zhekov</p>
+<p>Scope 0.78, Copyright (C) 2012 Dimitar Toshkov Zhekov</p>
 
 <p>The menu and toolbar icons are from <a href="http://netbeans.org">Netbeans</a>, except for
 BreakPoint.</p>


Modified: scope/src/prefs.c
2 files changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -36,6 +36,7 @@
 #endif
 
 gboolean pref_auto_view_source;
+gboolean pref_keep_exec_point;
 gint pref_visual_beep_length;
 #ifdef G_OS_UNIX
 gboolean pref_debug_console_vte;
@@ -271,6 +272,7 @@ void prefs_init(void)
 	stash_group_add_boolean(group, &pref_async_break_bugs, "async_break_bugs", TRUE);
 #endif
 	stash_group_add_boolean(group, &pref_auto_view_source, "auto_view_source", FALSE);
+	stash_group_add_boolean(group, &pref_keep_exec_point, "keep_exec_point", FALSE);
 	stash_group_add_integer(group, &pref_visual_beep_length, "visual_beep_length", 25);
 #ifdef G_OS_UNIX
 	stash_group_add_boolean(group, &pref_debug_console_vte, "debug_console_vte", TRUE);


Modified: scope/src/prefs.h
1 files changed, 1 insertions(+), 0 deletions(-)
===================================================================
@@ -29,6 +29,7 @@
 #endif
 
 extern gboolean pref_auto_view_source;
+extern gboolean pref_keep_exec_point;
 extern gint pref_visual_beep_length;
 #ifdef G_OS_UNIX
 extern gboolean pref_debug_console_vte;


Modified: scope/src/scope.c
2 files changed, 1 insertions(+), 1 deletions(-)
===================================================================
@@ -32,7 +32,7 @@
 PLUGIN_VERSION_CHECK(215)
 
 PLUGIN_SET_TRANSLATABLE_INFO(LOCALEDIR, GETTEXT_PACKAGE, _("Scope Debugger"),
-	_("Simple GDB front-end."), "0.77" , "Dimitar Toshkov Zhekov <dimitar.zhekov at gmail.com>")
+	_("Simple GDB front-end."), "0.78" , "Dimitar Toshkov Zhekov <dimitar.zhekov at gmail.com>")
 
 /* Keybinding(s) */
 enum


Modified: scope/src/thread.c
24 files changed, 13 insertions(+), 11 deletions(-)
===================================================================
@@ -211,17 +211,19 @@ static void thread_iter_unmark(GtkTreeIter *iter, gpointer gdata)
 	gtk_tree_model_get(model, iter, THREAD_FILE, &file, THREAD_LINE, &line, THREAD_STATE,
 		&state, -1);
 	stopped = !strcmp(state, STOPPED);
-	thread_prompt += gdata ? !stopped : -stopped;
-	utils_mark(file, line, FALSE, MARKER_EXECUTE);
+	thread_prompt += gdata ? -stopped : !stopped;
+
+	if (GPOINTER_TO_INT(gdata) != 2)
+		utils_mark(file, line, FALSE, MARKER_EXECUTE);
 }
 
 static void thread_iter_running(GtkTreeIter *iter, const char *tid)
 {
-	thread_iter_unmark(iter, NULL);
+	thread_iter_unmark(iter, GINT_TO_POINTER(TRUE + pref_keep_exec_point));
 
-	gtk_list_store_set(store, iter, THREAD_FILE, NULL, THREAD_LINE, 0, THREAD_STATE,
-		RUNNING, THREAD_BASE_NAME, NULL, THREAD_FUNC, NULL, THREAD_ADDR, NULL,
-		THREAD_CORE, NULL, -1);
+	gtk_list_store_set(store, iter, THREAD_STATE, RUNNING, pref_keep_exec_point ? -1 :
+		THREAD_FILE, NULL, THREAD_LINE, 0, THREAD_BASE_NAME, NULL, THREAD_FUNC, NULL,
+		THREAD_ADDR, NULL, THREAD_CORE, NULL, -1);
 
 	if (thread_id)
 	{
@@ -279,7 +281,7 @@ static void thread_parse_frame(GArray *frame, const char *tid, GtkTreeIter *iter
 	if (!loc.addr)
 		loc.addr = "??";
 
-	thread_iter_unmark(iter, GINT_TO_POINTER(TRUE));
+	thread_iter_unmark(iter, NULL);
 	gtk_list_store_set(store, iter, THREAD_FILE, loc.file, THREAD_LINE, loc.line,
 		THREAD_STATE, STOPPED, THREAD_BASE_NAME, loc.base_name, THREAD_FUNC, loc.func,
 		THREAD_ADDR, loc.addr, -1);
@@ -467,7 +469,7 @@ void on_thread_exited(GArray *nodes)
 		{
 			gboolean was_selected = !g_strcmp0(tid, thread_id);
 
-			thread_iter_unmark(&iter, NULL);
+			thread_iter_unmark(&iter, GINT_TO_POINTER(TRUE));
 			gtk_list_store_remove(store, &iter);
 			if (was_selected && thread_select_on_exited)
 				auto_select_thread();
@@ -557,7 +559,7 @@ void threads_mark(GeanyDocument *doc)
 
 void threads_clear(void)
 {
-	model_foreach(model, (GFunc) thread_iter_unmark, NULL);
+	model_foreach(model, (GFunc) thread_iter_unmark, GINT_TO_POINTER(TRUE));
 	array_clear(thread_groups, (GFreeFunc) thread_group_free);
 	gtk_list_store_clear(store);
 	thread_count = 0;
@@ -829,8 +831,8 @@ void thread_init(void)
 		GTK_TREE_VIEW_COLUMN(get_object("thread_base_name_column")));
 
 	thread_groups = array_new(ThreadGroup, 0x10);
-	RUNNING = _("running");
-	STOPPED = _("stopped");
+	RUNNING = _("Running");
+	STOPPED = _("Stopped");
 	g_signal_connect(tree, "key-press-event", G_CALLBACK(on_view_key_press),
 		thread_seek_selected);
 	g_signal_connect(tree, "button-press-event", G_CALLBACK(on_view_button_1_press),



--------------
This E-Mail was brought to you by github_commit_mail.py (Source: TBD).


More information about the Plugins-Commits mailing list