Author: martin
Date: 2006-07-05 10:54:10 -0400 (Wed, 05 Jul 2006)
New Revision: 62265

Modified:
   trunk/debugger/ChangeLog
   trunk/debugger/backends/ProcessServant.cs
   trunk/debugger/backends/SingleSteppingEngine.cs
   trunk/debugger/classes/DebuggerSession.cs
   trunk/debugger/classes/SourceLocation.cs
   trunk/debugger/frontend/Interpreter.cs
Log:
2006-07-05  Martin Baulig  <[EMAIL PROTECTED]>

        * classes/DebuggerSession.cs
        (DebuggerSession.MainProcessReachedMain): Make this public again
        and call it from the `Interpreter'; read the FIXME in the source
        code.

        * frontend/Interpreter.cs
        (Interpreter.Start): Call `session.MainProcessReachedMain ()'.
        (Interpreter.LoadSession): Likewise.



Modified: trunk/debugger/ChangeLog
===================================================================
--- trunk/debugger/ChangeLog    2006-07-05 12:39:53 UTC (rev 62264)
+++ trunk/debugger/ChangeLog    2006-07-05 14:54:10 UTC (rev 62265)
@@ -1,3 +1,14 @@
+2006-07-05  Martin Baulig  <[EMAIL PROTECTED]>
+
+       * classes/DebuggerSession.cs
+       (DebuggerSession.MainProcessReachedMain): Make this public again
+       and call it from the `Interpreter'; read the FIXME in the source
+       code.
+
+       * frontend/Interpreter.cs
+       (Interpreter.Start): Call `session.MainProcessReachedMain ()'.
+       (Interpreter.LoadSession): Likewise.
+
 2006-07-03  Martin Baulig  <[EMAIL PROTECTED]>
 
        * classes/Event.cs
@@ -5,13 +16,11 @@
        may persist across multiple invocations of the target, so we use
        this to disable the event when we exit.
 
-       * backends/ProcessHandle.cs
-       (ProcessHandle.ReachedMain, OnProcessExitedEvent): New internal
-       methods; save/restore the session.
+       * backends/ProcessServant.cs
+       (ProcessServant.OnProcessExitedEvent): New internal method; save
+       the session here.
 
        * classes/DebuggerSession.cs
-       (DebuggerSession.OnProcessReachedMain): We're now internal and
-       called from the `ProcessServant'.
        (DebuggerSession.OnProcessExited): Disable all events here.
 
 2006-06-29  Martin Baulig  <[EMAIL PROTECTED]>

Modified: trunk/debugger/backends/ProcessServant.cs
===================================================================
--- trunk/debugger/backends/ProcessServant.cs   2006-07-05 12:39:53 UTC (rev 
62264)
+++ trunk/debugger/backends/ProcessServant.cs   2006-07-05 14:54:10 UTC (rev 
62265)
@@ -268,11 +268,6 @@
                        new_inferior.Continue ();
                }
 
-               internal void ReachedMain ()
-               {
-                       session.OnProcessReachedMain (client);
-               }
-
                internal void OnProcessExitedEvent ()
                {
                        session.OnProcessExited (client);

Modified: trunk/debugger/backends/SingleSteppingEngine.cs
===================================================================
--- trunk/debugger/backends/SingleSteppingEngine.cs     2006-07-05 12:39:53 UTC 
(rev 62264)
+++ trunk/debugger/backends/SingleSteppingEngine.cs     2006-07-05 14:54:10 UTC 
(rev 62265)
@@ -382,7 +382,6 @@
                                                main_method_retaddr = 
ret_frame.TargetAddress;
                                        }
 
-                                       process.ReachedMain ();
                                        if (!process.IsManaged)
                                                inferior.InitializeModules ();
                                }
@@ -2082,7 +2081,6 @@
                                      sse, data1, data2, Result);
 
                        RestoreStack (sse);
-                       sse.process.ReachedMain ();
                        inferior.InitializeModules ();
                        return true;
                }

Modified: trunk/debugger/classes/DebuggerSession.cs
===================================================================
--- trunk/debugger/classes/DebuggerSession.cs   2006-07-05 12:39:53 UTC (rev 
62264)
+++ trunk/debugger/classes/DebuggerSession.cs   2006-07-05 14:54:10 UTC (rev 
62265)
@@ -383,7 +383,14 @@
                // Session management.
                //
 
-               internal void OnProcessReachedMain (Process process)
+               //
+               // FIXME: Ideally, this would be called automatically from the
+               //        SingleSteppingEngine.  The problem is that 
`Event.Enable()' may
+               //        need to run stepping operations, so doing this 
correctly would
+               //        require some more work.  Keeping this as a quick fix 
for the
+               //        moment.
+               //
+               public void MainProcessReachedMain (Process process)
                {
                        foreach (Event e in events.Values) {
                                e.Enable (process.MainThread);

Modified: trunk/debugger/classes/SourceLocation.cs
===================================================================
--- trunk/debugger/classes/SourceLocation.cs    2006-07-05 12:39:53 UTC (rev 
62264)
+++ trunk/debugger/classes/SourceLocation.cs    2006-07-05 14:54:10 UTC (rev 
62265)
@@ -82,7 +82,7 @@
                public string Name {
                        get {
                                if (function != null)
-                                       return function.Name;
+                                       return function.FullName;
                                else if (line == -1)
                                        return source.Name;
                                else if (file != null)

Modified: trunk/debugger/frontend/Interpreter.cs
===================================================================
--- trunk/debugger/frontend/Interpreter.cs      2006-07-05 12:39:53 UTC (rev 
62264)
+++ trunk/debugger/frontend/Interpreter.cs      2006-07-05 14:54:10 UTC (rev 
62265)
@@ -318,6 +318,8 @@
 
                                current_thread = current_process.MainThread;
                                Wait (current_thread);
+                               // FIXME: Read the FIXME in DebuggerSession.cs !
+                               session.MainProcessReachedMain 
(current_process);
 
                                return current_process;
                        } catch (TargetException) {
@@ -344,6 +346,7 @@
                                current_process = main_process = 
debugger.Attach (session, pid);
                                current_thread = current_process.MainThread;
                                Wait (current_thread);
+                               session.MainProcessReachedMain 
(current_process);
 
                                return current_process;
                        } catch (TargetException) {
@@ -401,6 +404,7 @@
 
                                current_thread = current_process.MainThread;
                                Wait (current_thread);
+                               session.MainProcessReachedMain 
(current_process);
 
                                return current_process;
                        } catch (TargetException ex) {

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to