dotgnu-pnet-commits
[Top][All Lists]
Advanced

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

[dotgnu-pnet-commits] pnetlib ChangeLog runtime/System/Private/Debugg...


From: Radek Polak
Subject: [dotgnu-pnet-commits] pnetlib ChangeLog runtime/System/Private/Debugg...
Date: Mon, 09 Apr 2007 11:58:01 +0000

CVSROOT:        /sources/dotgnu-pnet
Module name:    pnetlib
Changes by:     Radek Polak <radekp>    07/04/09 11:58:01

Modified files:
        .              : ChangeLog 
        runtime/System/Private: DebuggerHelper.cs 

Log message:
        Watches for static members without need to specify class name, small 
fix for static watches

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/pnetlib/ChangeLog?cvsroot=dotgnu-pnet&r1=1.2492&r2=1.2493
http://cvs.savannah.gnu.org/viewcvs/pnetlib/runtime/System/Private/DebuggerHelper.cs?cvsroot=dotgnu-pnet&r1=1.4&r2=1.5

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/dotgnu-pnet/pnetlib/ChangeLog,v
retrieving revision 1.2492
retrieving revision 1.2493
diff -u -b -r1.2492 -r1.2493
--- ChangeLog   2 Apr 2007 21:57:12 -0000       1.2492
+++ ChangeLog   9 Apr 2007 11:58:01 -0000       1.2493
@@ -1,3 +1,9 @@
+2007-04-09  Radek Polak  <address@hidden>
+
+       * runtime/System/Private/DebuggerHelper.cs: Allow watches for static
+       members without need to specify class name. Fix for static member
+       watches.
+
 2007-04-03  Radek Polak  <address@hidden>
 
        * runtime/System/Private/DebuggerHelper.cs: Implement watching

Index: runtime/System/Private/DebuggerHelper.cs
===================================================================
RCS file: 
/sources/dotgnu-pnet/pnetlib/runtime/System/Private/DebuggerHelper.cs,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- runtime/System/Private/DebuggerHelper.cs    2 Apr 2007 21:57:12 -0000       
1.4
+++ runtime/System/Private/DebuggerHelper.cs    9 Apr 2007 11:58:01 -0000       
1.5
@@ -28,6 +28,7 @@
 internal sealed class DebuggerHelper
 {
        static LocalWatch locals;
+       static Type methodOwner;
        static int maxItemsDumpCount = 16;
        static Object error;
 
@@ -101,6 +102,10 @@
                                                        value = 
GetNonStaticMemberValue(instance, name,
                                                                                
                                                                null);
                                                }
+                                               else
+                                               {
+                                                       error = value;          
// restore last error
+                                               }
                                        }
 
                                        // Call indexer if local variable found
@@ -118,10 +123,19 @@
                                                // Check for static member
                                                Type matchingType = 
FindType(name);
 
-                                               // Find matching static 
field/method/property
+                                               // Parse member name or try 
current method owner
                                                if(matchingType != null)
                                                {
                                                        parser.Read(out name, 
out args);
+                                               }
+                                               else
+                                               {
+                                                       matchingType = 
methodOwner;
+                                               }
+
+                                               // Find matching static 
field/method/property
+                                               if(matchingType != null)
+                                               {
                                                        value = 
GetStaticMemberValue(matchingType,
                                                                                
                                                name, args);
                                                }
@@ -224,6 +238,12 @@
                                return ExpressionNotFoundError();
                        }
 
+       // Set type that owns currently debugged method
+       public static void SetMethodOwner(Type type)
+                       {
+                               methodOwner = type;
+                       }
+
        // Set current error and return it.
        private static String Error(String message)
                        {




reply via email to

[Prev in Thread] Current Thread [Next in Thread]