[geany/geany-plugins] c2bf3e: scope - fixed inspect update/refresh and win32 waf build paths
Dimitar Zhekov
git-noreply at xxxxx
Tue Aug 27 18:35:22 UTC 2013
Branch: refs/heads/master
Author: Dimitar Zhekov <dimitar.zhekov at gmail.com>
Committer: Dimitar Zhekov <dimitar.zhekov at gmail.com>
Date: Tue, 27 Aug 2013 18:35:22 UTC
Commit: c2bf3e7617ab0b86bb075ff6cbf8854dd373e574
https://github.com/geany/geany-plugins/commit/c2bf3e7617ab0b86bb075ff6cbf8854dd373e574
Log Message:
-----------
scope - fixed inspect update/refresh and win32 waf build paths
Modified Paths:
--------------
scope/ChangeLog
scope/NOTES
scope/docs/codes.html
scope/docs/scope.html
scope/src/inspect.c
scope/src/prefs.c
scope/src/prefs.h
scope/src/register.c
scope/src/scope.c
scope/src/views.c
scope/wscript_build
Modified: scope/ChangeLog
35 files changed, 26 insertions(+), 9 deletions(-)
===================================================================
@@ -1,18 +1,35 @@
+2013-08-25 Dimitar Zhekov <dimitar.zhekov at gmail.com>
+
+ * docs/codes.html, docs/scope.html, src/inspect.c,
+ src/prefs.c, src/prefs.h, src/views.c:
+ Fixed Inspect Refresh.
+ Added an option to disable Inspect Refresh/update in Hang mode
+ (causes internal gdb error).
+ * wscript_build:
+ Fixed the path handling when building with Waf under win32: Geany
+ does not change to it's own directory any more.
+ * src/register.c, src/scope.c:
+ Fixed unused variable warnings.
+ * docs/scope.html, src/scope.c:
+ Increased version to 0.91.3.
+
+
2013-07-30 Dimitar Zhekov <dimitar.zhekov at gmail.com>
* src/views.c:
- Use map signal to pre-change contents when editing tree
- cells, since map-event is not received under Windows.
+ Use map signal to pre-change contents when editing tree cells,
+ since map-event is not received under Windows.
* Windows panel defaults to THREADS view, not PROGRAM.
+
2013-07-25 Dimitar Zhekov <dimitar.zhekov at gmail.com>
* src/break.c, src/conterm.c, src/debug.c, src/inspect.c,
src/memory.c, src/menu.c, src/parse.c, src/program.c,
src/register.c, src/scope.c, src/stack.c, src/thread.c,
src/tooltip.c, src/tooltip.h, src/views.c:
- Explicitly initialize all sensitive global and static
- variables, since reloading the plugin will not do that.
+ Explicitly initialize all sensitive global and static variables,
+ since reloading the plugin will not do that.
* src/store/scptreestore.c:
Fixed indentation.
* docs/scope.html, src/scope.c:
@@ -22,8 +39,8 @@
2013-07-11 Dimitar Zhekov <dimitar.zhekov at gmail.com>
* src/scope.c:
- Update toolbar state when saving a document or switching to
- another document, and properly cache the last state.
+ Update toolbar state when saving a document or switching to another
+ document, and properly cache the last state.
* src/utils.c:
Recognize F77 as gdb-supported file type (was only Fortran).
* docs/scope.html, src/scope.c:
@@ -58,8 +75,8 @@
2013-07-02 Dimitar Zhekov <dimitar.zhekov at gmail.com>
* src/views.c:
- Fixed shutdown sequence error when destroying Inspect or
- Registers switches to the other page and causes refresh.
+ Fixed shutdown sequence error when destroying Inspect or Registers
+ switches to the other page and causes refresh.
Fixed the page number to refresh when switching to Inspect or
Registers.
@@ -183,7 +200,7 @@
2013-03-07 Enrico Tröger <enrico.troeger at uvena.de>
- * wscript_build
+ * wscript_build:
Fixed the path handling when building with Waf.
Modified: scope/NOTES
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -1,3 +1,6 @@
+-var-evaluate-expression reports the value from the last -var-update or
+-var-assign execution, not the current value
+
reloading a resident geany plugin module does not reinitialize any global
and static variables, so the sensitive ones must be initialized explicitly
Modified: scope/docs/codes.html
8 files changed, 6 insertions(+), 2 deletions(-)
===================================================================
@@ -109,7 +109,7 @@
<tr><td class="nowrap">02<scid>-var-evaluate-expression</td>
<td class="tab"><em>Refresh</em> inspects</td>
- <td class="tab">update register value</td></tr>
+ <td class="tab">update inspect value</td></tr>
<tr><td class="nowrap"> </td><td class="tab"> </td><td class="tab"> </td></tr>
@@ -135,10 +135,14 @@
<td class="tab">views idle update</td>
<td class="tab">(print instruction in debug console)</td></tr>
-<tr><td class="nowrap">04-var-update</td>
+<tr><td class="nowrap">040-var-update</td>
<td class="tab">views idle update</td>
<td class="tab">(partial) inspects update</td></tr>
+<tr><td class="nowrap">041-var-update</td>
+ <td class="tab"><em>Refresh</em> inspects</td>
+ <td class="tab">(prepare gdb for -var-evaluate-expression)</td></tr>
+
<tr><td class="nowrap">04<tid>-stack-list-frames</td>
<td class="tab">views idle update</td>
<td class="tab">same as 02</td></tr>
Modified: scope/docs/scope.html
18 files changed, 14 insertions(+), 4 deletions(-)
===================================================================
@@ -459,8 +459,9 @@
<p><b><a name="inspect">Inspect</a></b></p>
-<p>All -var-* commands except -var-update will be ignored when entered from the command line,
-because their output does not provide enough information to identify the variable object.</p>
+<p>-var-* commands entered from the command line will not update the <em>Inspect</em> view,
+because their output does not provide enough information to identify the variable object,
+and/or their PRINT-VALUES argument is unknown.</p>
<p><em>Jump To</em> lists the top-level variables, which is useful if you have a lot of
children displayed. It's disabled while gdb is inactive, because all variables are collapsed
@@ -508,7 +509,13 @@
larger, for example Scope may be activated only 10 times per second if Geany is idle.</p>
<p><em>async_break_bugs</em> (win~1 only) - whether gdb escapes slashes twice in the
-asynchronous break messages. If true, only <tt>=breakpoint-deleted</tt> will be handled.</p>
+asynchronous break messages. if true (the default), only <tt>=breakpoint-deleted</tt> will be
+handled.</p>
+
+<p><em>var_update_bug</em> - whether -var-update causes internal gdb error if the program is
+loaded but not running. If true (the default), the update of inspect expressions (including
+<em>Refresh</em>) will be disabled in <em>Hand</em> state. AFAIK, they will always have the
+globally initialized values (if any) in that state anyway.</p>
<p><em>auto_view_source</em> - seek in source on single click in threads, breakpoints
and stack.</p>
@@ -591,6 +598,9 @@
<p>A disabled check button or check menu item means that the respective functionality is
unavailable; it doesn't matter if the interface element is checked or not.</p>
+<p>Frame-dependent commands entered from the command line will not update the respective view,
+because their output does not contain thread and frame information.</p>
+
<p><b><a name="editing_values">Editing values</a></b></p>
<div>GDB often displays values in format unsuitable for assigning. So when editing a value,
@@ -738,7 +748,7 @@
<b><a name="copyright">Copyright</a></b>
-<p>Scope 0.91.2, Copyright (C) 2013 Dimitar Toshkov Zhekov</p>
+<p>Scope 0.91.3, Copyright (C) 2013 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/inspect.c
19 files changed, 14 insertions(+), 5 deletions(-)
===================================================================
@@ -485,9 +485,14 @@ static void inspect_node_change(const ParseNode *node, G_GNUC_UNUSED gpointer gd
void on_inspect_changelist(GArray *nodes)
{
GArray *changelist = parse_lead_array(nodes);
+ const char *token = parse_grab_token(nodes);
- if (parse_grab_token(nodes))
- parse_foreach(changelist, (GFunc) inspect_node_change, NULL);
+ if (token)
+ {
+ iff (*token <= '1', "%s: invalid i_oper", token)
+ if (*token == '0')
+ parse_foreach(changelist, (GFunc) inspect_node_change, NULL);
+ }
else if (changelist->len)
query_all_inspects = TRUE;
}
@@ -547,7 +552,8 @@ static gint inspect_iter_refresh(ScpTreeStore *store, GtkTreeIter *iter, gpointe
static void inspects_send_refresh(char token)
{
- scp_tree_store_traverse(store, TRUE, NULL, NULL, inspect_iter_refresh, NULL);
+ scp_tree_store_traverse(store, TRUE, NULL, NULL, inspect_iter_refresh,
+ GINT_TO_POINTER(token));
query_all_inspects = FALSE;
}
@@ -556,7 +562,7 @@ gboolean inspects_update(void)
if (query_all_inspects)
inspects_send_refresh('4');
else
- debug_send_command(F, "04-var-update 1 *");
+ debug_send_command(F, "040-var-update 1 *");
return TRUE;
}
@@ -783,6 +789,7 @@ void inspects_save(GKeyFile *config)
static void on_inspect_refresh(G_GNUC_UNUSED const MenuItem *menu_item)
{
+ debug_send_command(F, "041-var-update 1 *");
inspects_send_refresh('2');
}
@@ -971,7 +978,7 @@ static void on_inspect_delete(G_GNUC_UNUSED const MenuItem *menu_item)
static MenuItem inspect_menu_items[] =
{
- { "inspect_refresh", on_inspect_refresh, DS_VARIABLE, NULL, NULL },
+ { "inspect_refresh", on_inspect_refresh, DS_DEBUG, NULL, NULL },
{ "inspect_add", on_inspect_add, DS_NOT_BUSY, NULL, NULL },
{ "inspect_edit", on_inspect_edit, DS_EDITABLE, NULL, NULL },
{ "inspect_apply", on_inspect_apply, DS_APPLIABLE, NULL, NULL },
@@ -1148,6 +1155,8 @@ void inspect_init(void)
g_signal_connect(selection, "changed", G_CALLBACK(on_inspect_selection_changed), NULL);
menu = menu_select("inspect_menu", &inspect_menu_info, selection);
g_signal_connect(menu, "show", G_CALLBACK(on_inspect_menu_show), NULL);
+ if (!pref_var_update_bug)
+ inspect_menu_items->state = DS_VARIABLE;
inspect_dialog = dialog_connect("inspect_dialog");
inspect_name = GTK_ENTRY(get_widget("inspect_name_entry"));
Modified: scope/src/prefs.c
2 files changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -34,6 +34,7 @@
gint pref_gdb_send_interval;
gboolean pref_async_break_bugs;
#endif
+gboolean pref_var_update_bug;
gboolean pref_auto_view_source;
gboolean pref_keep_exec_point;
@@ -237,6 +238,7 @@ void prefs_init(void)
stash_group_add_integer(group, &pref_gdb_send_interval, "gdb_send_interval", 5);
stash_group_add_boolean(group, &pref_async_break_bugs, "async_break_bugs", TRUE);
#endif
+ stash_group_add_boolean(group, &pref_var_update_bug, "var_update_bug", TRUE);
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);
Modified: scope/src/prefs.h
1 files changed, 1 insertions(+), 0 deletions(-)
===================================================================
@@ -27,6 +27,7 @@
extern gint pref_gdb_send_interval;
extern gboolean pref_async_break_bugs;
#endif
+extern gboolean pref_var_update_bug;
extern gboolean pref_auto_view_source;
extern gboolean pref_keep_exec_point;
Modified: scope/src/register.c
1 files changed, 0 insertions(+), 1 deletions(-)
===================================================================
@@ -375,7 +375,6 @@ static gboolean register_load(GKeyFile *config, const char *section)
char *name = utils_key_file_get_string(config, section, "name");
gint format = utils_get_setting_integer(config, section, "format", FORMAT_NATURAL);
gboolean valid = FALSE;
- GtkTreeIter iter;
if (name && (unsigned) format < FORMAT_COUNT)
{
Modified: scope/src/scope.c
4 files changed, 2 insertions(+), 2 deletions(-)
===================================================================
@@ -32,7 +32,7 @@
PLUGIN_VERSION_CHECK(215)
PLUGIN_SET_TRANSLATABLE_INFO(LOCALEDIR, GETTEXT_PACKAGE, _("Scope Debugger"),
- _("Relatively simple GDB front-end."), "0.91.2" ,
+ _("Relatively simple GDB front-end."), "0.91.3" ,
"Dimitar Toshkov Zhekov <dimitar.zhekov at gmail.com>")
/* Keybinding(s) */
@@ -379,7 +379,7 @@ static void on_document_filetype_set(G_GNUC_UNUSED GObject *obj, GeanyDocument *
toolbar_update_state(state);
}
-static void on_document_activate(G_GNUC_UNUSED GObject *obj, GeanyDocument *doc,
+static void on_document_activate(G_GNUC_UNUSED GObject *obj, G_GNUC_UNUSED GeanyDocument *doc,
G_GNUC_UNUSED gpointer user_data)
{
toolbar_update_state(debug_state());
Modified: scope/src/views.c
5 files changed, 4 insertions(+), 1 deletions(-)
===================================================================
@@ -50,7 +50,7 @@
{ FALSE, VC_FRAME, watches_clear, watches_update, FALSE, DS_VARIABLE },
{ FALSE, VC_DATA, memory_clear, memory_update, FALSE, DS_VARIABLE },
{ FALSE, VC_NONE, NULL, dc_update, FALSE, DS_DEBUG },
- { FALSE, VC_FRAME, inspects_clear, inspects_update, FALSE, DS_VARIABLE },
+ { FALSE, VC_FRAME, inspects_clear, inspects_update, FALSE, DS_DEBUG },
{ FALSE, VC_FRAME, registers_clear, registers_update, TRUE, DS_DEBUG },
{ FALSE, VC_DATA, tooltip_clear, tooltip_update, FALSE, DS_SENDABLE },
{ FALSE, VC_NONE, menu_clear, NULL, FALSE, 0 }
@@ -611,6 +611,9 @@ void views_init(void)
#endif
last_views_state = 0;
+ if (!pref_var_update_bug)
+ views[VIEW_INSPECT].state = DS_VARIABLE;
+
command_dialog = dialog_connect("command_dialog");
command_view = get_widget("command_view");
command_text = gtk_text_view_get_buffer(GTK_TEXT_VIEW(command_view));
Modified: scope/wscript_build
19 files changed, 9 insertions(+), 10 deletions(-)
===================================================================
@@ -28,25 +28,24 @@ name = 'Scope'
includes = ['scope/src', 'scope/src/store']
if target_is_win32(bld):
- datadir = '${GEANYPLUGINS_DATADIR}/geany-plugins/scope'
+ datadir = '${G_PREFIX}/${GEANYPLUGINS_DATADIR}/geany-plugins/scope'
docdir = 'doc/plugins/scope'
- prefix = '${G_PREFIX}/'
+ htmldocdir = '${G_PREFIX}/%s/html' % docdir
libraries = []
else:
datadir = '${GEANYPLUGINS_DATADIR}/geany-plugins/scope'
docdir = '${DOCDIR}/scope'
- prefix = ''
+ htmldocdir = '%s/html' % docdir
libraries = ['VTE', 'UTIL']
-htmldocdir = '%s/html' % docdir
-defines = [ subst_vars('PLUGINDATADIR="' + datadir + '"', bld.env),
- subst_vars('PLUGINHTMLDOCDIR="' + htmldocdir + '"', bld.env)]
+defines = [ subst_vars('PLUGINDATADIR="' + datadir + '"', bld.env).replace("\\", "/"),
+ subst_vars('PLUGINHTMLDOCDIR="' + htmldocdir + '"', bld.env).replace("\\", "/")]
build_plugin(bld, name, includes=includes, libraries=libraries, defines=defines)
-bld.install_files('%s%s' % (prefix, htmldocdir), 'docs/codes.html')
-bld.install_files('%s%s' % (prefix, htmldocdir), 'docs/scope.html')
+bld.install_files(htmldocdir, 'docs/codes.html')
+bld.install_files(htmldocdir, 'docs/scope.html')
start_dir = bld.path.find_dir('data')
-bld.install_files('%s%s' % (prefix, datadir), start_dir.ant_glob('*.png'), cwd=start_dir)
-bld.install_files('%s%s' % (prefix, datadir), 'data/scope.glade')
+bld.install_files(datadir, start_dir.ant_glob('*.png'), cwd=start_dir)
+bld.install_files(datadir, 'data/scope.glade')
--------------
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