nemiver r756 - in trunk: . src src/persp/dbgperspective



Author: jjongsma
Date: Sun Feb 24 04:41:06 2008
New Revision: 756
URL: http://svn.gnome.org/viewvc/nemiver?rev=756&view=rev

Log:
	* src/main.cc:
	* src/persp/dbgperspective/nmv-dbg-perspective.cc: add a 'last run time'
	attribute to the session database so that we can use this value to resume
	the last debugging session when we pass the '--last' commandline option
	(previously --last was resuming the last /created/ session instead of teh
	last /run/ session).  This should fix bug #464201.


Modified:
   trunk/ChangeLog
   trunk/src/main.cc
   trunk/src/persp/dbgperspective/nmv-dbg-perspective.cc

Modified: trunk/src/main.cc
==============================================================================
--- trunk/src/main.cc	(original)
+++ trunk/src/main.cc	Sun Feb 24 04:41:06 2008
@@ -319,12 +319,25 @@
                                                 (DBGPERSPECTIVE_PLUGIN_NAME));
         if (debug_persp) {
             debug_persp->session_manager ().load_sessions ();
-            list<ISessMgr::Session>::reverse_iterator session_iter;
             list<ISessMgr::Session>& sessions =
                             debug_persp->session_manager ().sessions ();
-            session_iter = sessions.rbegin ();
-            if (session_iter != sessions.rend ()) {
-                debug_persp->execute_session (*session_iter);
+            if (!sessions.empty ()) {
+                list<ISessMgr::Session>::iterator session_iter,
+                    latest_session_iter;
+                glong time_val = 0;
+                for (session_iter = sessions.begin ();
+                        session_iter != sessions.end ();
+                        ++session_iter) {
+                    std::map<UString, UString>::const_iterator map_iter = session_iter->properties ().find ("lastruntime");
+                    if (map_iter != session_iter->properties ().end ()) {
+                        glong new_time = atoi (map_iter->second.c_str ());
+                        if (new_time > time_val) {
+                            time_val = new_time;
+                            latest_session_iter = session_iter;
+                        }
+                    }
+                }
+                debug_persp->execute_session (*latest_session_iter);
             } else {
                 cerr << "Could not find any sessions"
                      << "\n";

Modified: trunk/src/persp/dbgperspective/nmv-dbg-perspective.cc
==============================================================================
--- trunk/src/persp/dbgperspective/nmv-dbg-perspective.cc	(original)
+++ trunk/src/persp/dbgperspective/nmv-dbg-perspective.cc	Sun Feb 24 04:41:06 2008
@@ -120,6 +120,7 @@
 const char *PROGRAM_NAME= "programname" ;
 const char *PROGRAM_ARGS= "programarguments" ;
 const char *PROGRAM_CWD= "programcwd" ;
+const char *LAST_RUN_TIME= "lastruntime" ;
 const char *DBG_PERSPECTIVE_MOUSE_MOTION_DOMAIN =
                                 "dbg-perspective-mouse-motion-domain" ;
 
@@ -3815,6 +3816,10 @@
 a_session.properties ().clear () ; a_session.properties ()[SESSION_NAME] = session_name ; a_session.properties ()[PROGRAM_NAME] = m_priv->prog_path ;
     a_session.properties ()[PROGRAM_ARGS] = m_priv->prog_args ;
     a_session.properties ()[PROGRAM_CWD] = m_priv->prog_cwd ;
+    GTimeVal timeval;
+    g_get_current_time (&timeval);
+    UString time;
+    a_session.properties ()[LAST_RUN_TIME] = time.printf ("%ld", timeval.tv_sec);
     a_session.env_variables () = m_priv->env_variables;
 
     a_session.opened_files ().clear () ;



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