[Mono-list] NullRefException compiling with mcs
Stuart Ballard
sballard@netreach.com
Wed, 28 Jan 2004 11:04:03 -0500
Miguel de Icaza wrote:
> It is hard to tell from the stack trace that you provided, and that
> version of the compiler is fairly old, we have fixed roughly a hundred
> bugs since that release.
>
> It would be useful if you could try with a new compiler, or isolate a
> sample test case.
The 20040111 snapshot has the same problem (stack trace below, I'm not
sure whether it's identical but it's similar), and since that's the
latest debian package to have been created, it's the latest that's easy
for me to test.
I'm pretty sure this is a regression - an older version of mcs was able
to compile this project without problems. Although it's true that the
project itself has changed in that time too, none of the changes seem
particularly likely to break the compiler.
Do you have any suggestions as to how I might go about narrowing down
the problem? Are there any particular language features that are
suggested or ruled out by the stack trace?
I'll have a go myself at tracking it down as well, but I'm dealing with
a compilation involving 102 generated source files (created by nrdo,
http://savannah.nongnu.org/projects/nrdo) that range in size from 5K to
50K, so it's hard to know where to begin. There are only a few of the
files that are truly standalone, but when I tried compiling one of those
few by itself, the error didn't occur.
I can send you (or someone else) the full source in private email, but I
appreciate that that's not much use...
Thanks in advance for any tips,
Stuart.
Unhandled Exception: System.NullReferenceException: A null value was
found where an object instance was required
in <0x0020c> Mono.CSharp.Interface:DefineType ()
in <0x00226> Mono.CSharp.DeclSpace:LookupInterfaceOrClass
(string,string,bool&)in <0x00285> Mono.CSharp.DeclSpace:FindType
(Mono.CSharp.Location,string)
in <0x0011a> Mono.CSharp.MemberAccess:ResolveAsTypeStep
(Mono.CSharp.EmitContext)
in <0x00011> Mono.CSharp.Expression:ResolveAsTypeTerminal
(Mono.CSharp.EmitContext)
in <0x0005b> Mono.CSharp.DeclSpace:ResolveTypeExpr
(Mono.CSharp.Expression,bool,Mono.CSharp.Location)
in <0x004e6> Mono.CSharp.TypeContainer:GetClassBases
(bool,Mono.CSharp.TypeExpr&,bool&)
in <0x0022e> Mono.CSharp.TypeContainer:DefineType ()
in <0x00305> Mono.CSharp.RootContext:ResolveTree ()
in <0x00a87> Mono.CSharp.Driver:MainDriver (string[])
in <0x0001a> Mono.CSharp.Driver:Main (string[])
--
Stuart Ballard, Senior Web Developer
NetReach, Inc.
(215) 283-2300, ext. 126
http://www.netreach.com/