[gnome-builder] debugger: clear stopped line when debugger exits
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] debugger: clear stopped line when debugger exits
- Date: Wed, 6 Sep 2017 18:55:25 +0000 (UTC)
commit ee18c3eec09f3803e59617f3c196e81daf5c8a68
Author: Christian Hergert <chergert redhat com>
Date: Wed Sep 6 11:55:14 2017 -0700
debugger: clear stopped line when debugger exits
We might have a situation where the debugger crashes while we are paused
and inspecting variables. Make sure we cleanup the breakpoint line state
in that situation.
libide/debugger/ide-debug-manager.c | 24 ++++++++++++++++++------
1 files changed, 18 insertions(+), 6 deletions(-)
---
diff --git a/libide/debugger/ide-debug-manager.c b/libide/debugger/ide-debug-manager.c
index fe295d7..1f6dabd 100644
--- a/libide/debugger/ide-debug-manager.c
+++ b/libide/debugger/ide-debug-manager.c
@@ -369,17 +369,13 @@ ide_debug_manager_unmark_stopped (IdeDebugManager *self,
}
static void
-ide_debug_manager_debugger_running (IdeDebugManager *self,
- IdeDebugger *debugger)
+ide_debug_manager_clear_stopped (IdeDebugManager *self)
{
IdeBufferManager *bufmgr;
IdeContext *context;
guint n_items;
- IDE_ENTRY;
-
g_assert (IDE_IS_DEBUG_MANAGER (self));
- g_assert (IDE_IS_DEBUGGER (debugger));
context = ide_object_get_context (IDE_OBJECT (self));
bufmgr = ide_context_get_buffer_manager (context);
@@ -398,10 +394,25 @@ ide_debug_manager_debugger_running (IdeDebugManager *self,
for (guint i = 0; i < n_items; i++)
{
- g_autoptr(IdeBuffer) buffer = g_list_model_get_item (G_LIST_MODEL (bufmgr), i);
+ g_autoptr(IdeBuffer) buffer = NULL;
+
+ buffer = g_list_model_get_item (G_LIST_MODEL (bufmgr), i);
+ g_assert (IDE_IS_BUFFER (buffer));
ide_debug_manager_unmark_stopped (self, buffer);
}
+}
+
+static void
+ide_debug_manager_debugger_running (IdeDebugManager *self,
+ IdeDebugger *debugger)
+{
+ IDE_ENTRY;
+
+ g_assert (IDE_IS_DEBUG_MANAGER (self));
+ g_assert (IDE_IS_DEBUGGER (debugger));
+
+ ide_debug_manager_clear_stopped (self);
IDE_EXIT;
}
@@ -886,6 +897,7 @@ ide_debug_manager_runner_exited (IdeDebugManager *self,
ide_debug_manager_set_active (self, FALSE);
ide_debug_manager_reset_breakpoints (self);
+ ide_debug_manager_clear_stopped (self);
g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_DEBUGGER]);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]