[nemiver] Better BP re-setting on restart (Closes: #634227)
- From: Dodji Seketeli <dodji src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nemiver] Better BP re-setting on restart (Closes: #634227)
- Date: Sun, 7 Nov 2010 16:57:51 +0000 (UTC)
commit 8291326f6e34672cbc4db4d36ceb77d68308d9f7
Author: Dodji Seketeli <dodji seketeli org>
Date: Sun Nov 7 17:23:48 2010 +0100
Better BP re-setting on restart (Closes: #634227)
* src/persp/dbgperspective/nmv-dbg-perspective.cc
(DBGPerspective::execute_program): Save breakpoints we want to
delete and set back. Delete them, and set them back by looking at
the saved breakpoint. Do not pass any special cookie to
IDebugger::delete_breakpoint anymore.
(DBGPerspective::on_debugger_breakpoint_deleted_signal): Do not
handle the special cookie for the restarting use case anymore.
(<const char *I_DEBUGGER_COOKIE_EXECUTE_PROGRAM>): Remove this
[now useless] cookie.
src/persp/dbgperspective/nmv-dbg-perspective.cc | 30 +++++++---------------
1 files changed, 10 insertions(+), 20 deletions(-)
---
diff --git a/src/persp/dbgperspective/nmv-dbg-perspective.cc b/src/persp/dbgperspective/nmv-dbg-perspective.cc
index f498918..ed2004d 100644
--- a/src/persp/dbgperspective/nmv-dbg-perspective.cc
+++ b/src/persp/dbgperspective/nmv-dbg-perspective.cc
@@ -181,8 +181,6 @@ const Gtk::StockID STOCK_STEP_INTO (STEP_INTO);
const Gtk::StockID STOCK_STEP_OVER (STEP_OVER);
const Gtk::StockID STOCK_STEP_OUT (STEP_OUT);
-const char *I_DEBUGGER_COOKIE_EXECUTE_PROGRAM = "i-debugger-execute-program";
-
const char *PROG_ARG_SEPARATOR = "#DUMMY-SEP007#";
class DBGPerspective;
@@ -2676,27 +2674,17 @@ void
DBGPerspective::on_debugger_breakpoint_deleted_signal
(const IDebugger::Breakpoint &,
int a_break_number,
- const UString &a_cookie)
+ const UString &)
{
LOG_FUNCTION_SCOPE_NORMAL_DD;
NEMIVER_TRY
- if (a_cookie == I_DEBUGGER_COOKIE_EXECUTE_PROGRAM) {
- //We received this event because we were triggering the
- //execution of a program, in DBGPerspective::execute_program().
- //So as part of that function, we asked to clear all the opened files
- //and to delete all the set breakpoints.
- //This event is the result the request to delete all the
- //breakpoints. The request was issued after the opened files got
- //closed. So we won't be able to find the files to visualy delete the
- //breakpoints from. So let's just pass.
- return;
- }
delete_visual_breakpoint (a_break_number);
SourceEditor* editor = get_current_source_editor ();
THROW_IF_FAIL (editor);
update_toggle_menu_text (*editor);
+
NEMIVER_CATCH
}
@@ -6217,14 +6205,16 @@ DBGPerspective::execute_program
: true;
LOG_DD ("is new prog: " << is_new_program);
+ // Save the current breakpoints aside.
+ map<int, IDebugger::Breakpoint> saved_bps = m_priv->breakpoints;
+
// delete old breakpoints, if any.
map<int, IDebugger::Breakpoint>::const_iterator bp_it;
- for (bp_it = m_priv->breakpoints.begin ();
- bp_it != m_priv->breakpoints.end ();
+ for (bp_it = saved_bps.begin ();
+ bp_it != saved_bps.end ();
++bp_it) {
if (m_priv->debugger_engine_alive)
- dbg_engine->delete_breakpoint (bp_it->first,
- I_DEBUGGER_COOKIE_EXECUTE_PROGRAM);
+ dbg_engine->delete_breakpoint (bp_it->first);
}
if (is_new_program) {
@@ -6260,8 +6250,8 @@ DBGPerspective::execute_program
if (a_breaks.empty ()) {
if (!is_new_program) {
map<int, IDebugger::Breakpoint>::const_iterator it;
- for (it = m_priv->breakpoints.begin ();
- it != m_priv->breakpoints.end ();
+ for (it = saved_bps.begin ();
+ it != saved_bps.end ();
++it) {
set_breakpoint (it->second);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]