[nemiver] Don't try to look for frame on exit (Closes: #630615)



commit f3a854e6932688bbd0dc234ec409f77bcd61bd1e
Author: Dodji Seketeli <dodji seketeli org>
Date:   Sat Oct 2 17:22:33 2010 +0200

    Don't try to look for frame on exit (Closes: #630615)
    
    	* src/dbgengine/nmv-i-debugger.h (IDebugger::is_exited): New entry
    	point.
    	* src/persp/dbgperspective/nmv-dbg-perspective.cc
    	(DBGPerspective::on_debugger_stopped_signal): Use
    	IDebugger::is_exited to exit early whenever we stopped because we
    	exited.

 src/dbgengine/nmv-i-debugger.h                  |   10 +++++++++-
 src/persp/dbgperspective/nmv-dbg-perspective.cc |    9 ++++++---
 2 files changed, 15 insertions(+), 4 deletions(-)
---
diff --git a/src/dbgengine/nmv-i-debugger.h b/src/dbgengine/nmv-i-debugger.h
index 101573c..54b92f5 100644
--- a/src/dbgengine/nmv-i-debugger.h
+++ b/src/dbgengine/nmv-i-debugger.h
@@ -780,7 +780,15 @@ public:
         SIGNAL_RECEIVED
     };//end enum StopReason
 
-
+    /// Return true if a StopReason represents a reason for exiting.
+    static bool is_exited (enum StopReason a_reason)
+    {
+        if (a_reason == EXITED_SIGNALLED
+            || a_reason == EXITED
+            || a_reason == EXITED_NORMALLY)
+            return true;
+        return false;
+    }
 
     virtual ~IDebugger () {}
 
diff --git a/src/persp/dbgperspective/nmv-dbg-perspective.cc b/src/persp/dbgperspective/nmv-dbg-perspective.cc
index bd02707..9c92286 100644
--- a/src/persp/dbgperspective/nmv-dbg-perspective.cc
+++ b/src/persp/dbgperspective/nmv-dbg-perspective.cc
@@ -2458,15 +2458,17 @@ DBGPerspective::on_debugger_stopped_signal (IDebugger::StopReason a_reason,
                                             const IDebugger::Frame &a_frame,
                                             int , int, const UString &)
 {
-
     LOG_FUNCTION_SCOPE_NORMAL_DD;
 
-    NEMIVER_TRY
+    NEMIVER_TRY;
 
     LOG_DD ("stopped, reason: " << (int)a_reason);
 
     THROW_IF_FAIL (m_priv);
 
+    if (IDebugger::is_exited (a_reason))
+        return;
+
     update_src_dependant_bp_actions_sensitiveness ();
     m_priv->current_frame = a_frame;
 
@@ -2478,7 +2480,8 @@ DBGPerspective::on_debugger_stopped_signal (IDebugger::StopReason a_reason,
     }
 
     add_text_to_command_view ("\n(gdb)", true);
-    NEMIVER_CATCH
+
+    NEMIVER_CATCH;
 }
 
 void



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]