[Mono-bugs] [Bug 464124] New: Imposible to inspect class variables

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Wed Jan 7 08:49:20 EST 2009


https://bugzilla.novell.com/show_bug.cgi?id=464124


           Summary: Imposible to inspect class variables
           Product: Mono: Debugger
           Version: unspecified
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Critical
          Priority: P5 - None
         Component: cli
        AssignedTo: martin at novell.com
        ReportedBy: msafar at novell.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---


In MethodBuilder class it's impossible to inspect most of its variables.

/mcs/class/corlib/System.Reflection.Emit/MethodBuilder.cs:352.
 352                    if (ilgen != null)
(mdb) ptype this
class System.Reflection.Emit.MethodBuilder : System.Reflection.MethodInfo
{
public:
   bool ContainsGenericParameters { get; };
   bool InitLocals { get; set; };
   System.RuntimeMethodHandle MethodHandle { get; };
   System.Type ReturnType { get; };
   System.Type ReflectedType { get; };
   System.Type DeclaringType { get; };
   string Name { get; };
   System.Reflection.MethodAttributes Attributes { get; };
   System.Reflection.ICustomAttributeProvider ReturnTypeCustomAttributes { get;
};
   System.Reflection.CallingConventions CallingConvention { get; };
   string Signature { get; };
   bool IsGenericMethodDefinition { get; };
   bool IsGenericMethod { get; };
   System.Reflection.Module Module { get; };
   System.Reflection.Emit.MethodToken GetToken ();
   System.Reflection.MethodInfo GetBaseDefinition ();
   System.Reflection.MethodImplAttributes GetMethodImplementationFlags ();
   System.Reflection.ParameterInfo[] GetParameters ();
   System.Reflection.Module GetModule ();
   void CreateMethodBody (byte[], int);
   object Invoke (object, System.Reflection.BindingFlags,
System.Reflection.Binder, object[], System.Globalization.CultureInfo);
   bool IsDefined (System.Type, bool);
   object[] GetCustomAttributes (bool);
   object[] GetCustomAttributes (System.Type, bool);
   System.Reflection.Emit.ILGenerator GetILGenerator ();
   System.Reflection.Emit.ILGenerator GetILGenerator (int);
   System.Reflection.Emit.ParameterBuilder DefineParameter (int,
System.Reflection.ParameterAttributes, string);
   void SetCustomAttribute (System.Reflection.Emit.CustomAttributeBuilder);
   void SetCustomAttribute (System.Reflection.ConstructorInfo, byte[]);
   void SetImplementationFlags (System.Reflection.MethodImplAttributes);
   void AddDeclarativeSecurity (System.Security.Permissions.SecurityAction,
System.Security.PermissionSet);
   void SetMarshal (System.Reflection.Emit.UnmanagedMarshal);
   void SetSymCustomAttribute (string, byte[]);
   string ToString ();
   bool Equals (object);
   int GetHashCode ();
   System.Reflection.MethodInfo MakeGenericMethod (System.Type[]);
   System.Reflection.MethodInfo GetGenericMethodDefinition ();
   System.Type[] GetGenericArguments ();
   System.Reflection.Emit.GenericTypeParameterBuilder[] DefineGenericParameters
(string[]);
   void SetReturnType (System.Type);
   void SetParameters (System.Type[]);
   void SetSignature (System.Type, System.Type[], System.Type[], System.Type[],
System.Type[][], System.Type[][]);
internal:
   System.Type[] parameters;
   System.Reflection.Emit.ParameterBuilder[] pinfo;
   System.Reflection.Emit.TypeBuilder TypeBuilder { get; };
   bool BestFitMapping { set; };
   bool ThrowOnUnmappableChar { set; };
   bool ExactSpelling { set; };
   bool SetLastError { set; };
   int GetParameterCount ();
   void check_override ();
   void fixup ();
   void GenerateDebugInfo (System.Diagnostics.SymbolStore.ISymbolWriter);
   int get_next_table_index (object, int, bool);
   void set_override (System.Reflection.MethodInfo);
   .ctor (System.Reflection.Emit.TypeBuilder, string,
System.Reflection.MethodAttributes, System.Reflection.CallingConventions,
System.Type, System.Type[], System.Type[], System.Type[], System.Type[][],
System.Type[][]);
   .ctor (System.Reflection.Emit.TypeBuilder, string,
System.Reflection.MethodAttributes, System.Reflection.CallingConventions,
System.Type, System.Type[], System.Type[], System.Type[], System.Type[][],
System.Type[][], string, string,
System.Runtime.InteropServices.CallingConvention,
System.Runtime.InteropServices.CharSet);
private:
   System.RuntimeMethodHandle mhandle;
   System.Type rtype;
   System.Reflection.MethodAttributes attrs;
   System.Reflection.MethodImplAttributes iattrs;
   string name;
   int table_idx;
   byte[] code;
   System.Reflection.Emit.ILGenerator ilgen;
   System.Reflection.Emit.TypeBuilder type;
   System.Reflection.Emit.CustomAttributeBuilder[] cattrs;
   System.Reflection.MethodInfo override_method;
   string pi_dll;
   string pi_entry;
   System.Runtime.InteropServices.CharSet charset;
   uint extra_flags;
   System.Runtime.InteropServices.CallingConvention native_cc;
   System.Reflection.CallingConventions call_conv;
   bool init_locals;
   System.IntPtr generic_container;
   System.Reflection.Emit.GenericTypeParameterBuilder[] generic_params;
   System.Type[] returnModReq;
   System.Type[] returnModOpt;
   System.Type[][] paramModReq;
   System.Type[][] paramModOpt;
   System.Reflection.Emit.RefEmitPermissionSet[] permissions;
   static System.Collections.Generic.Dictionary`2<string,int>
<>f__switch$map1F;
   void System.Runtime.InteropServices._MethodBuilder.GetIDsOfNames
(System.Guid*, System.IntPtr, uint, uint, System.IntPtr);
   void System.Runtime.InteropServices._MethodBuilder.GetTypeInfo (uint, uint,
System.IntPtr);
   void System.Runtime.InteropServices._MethodBuilder.GetTypeInfoCount (uint*);
   void System.Runtime.InteropServices._MethodBuilder.Invoke (uint,
System.Guid*, uint, short, System.IntPtr, System.IntPtr, System.IntPtr,
System.IntPtr);
   void RejectIfCreated ();
   System.Exception NotSupported ();
}
(mdb) p name
(string) "_"
(mdb) p code
ERROR: Cannot evaluate expression `code'
(mdb) p pi_dll
ERROR: Cannot evaluate expression `pi_dll'
(mdb) p this
(System.Reflection.Emit.MethodBuilder) { "MethodBuilder [AboutDialog::_]" }
(mdb)


-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the mono-bugs mailing list