[Mono-dev] Mono runtime segfault
Marek Safar
marek.safar at seznam.cz
Tue Aug 23 03:51:27 EDT 2005
Hello,
>>On 8/23/05, David Carr <dc at dcarr.org> wrote:
>>
>>
>>>I'm getting an unexpected segfault running the code below: Forgive me
>>>if its a silly mistake on my part.
>>>
>>>Thanks for any help,
>>>David Carr
>>>
>>>david at Cadmium ~/Prog/c#/gcross $ mono Crash.exe
>>>Segmentation fault
>>>
>>>Listing for Crash.cs:
>>>public class Crash
>>>{
>>> int var
>>> {
>>> get { return var; }
>>> set { var = value; }
>>> }
>>>
>>> public Crash(int i)
>>> {
>>> var = i;
>>> }
>>>
>>> public static void Main()
>>> {
>>> Crash c = new Crash(10);
>>> }
>>>
>>>}
>>>
>>>
>>>
>2005/8/23, feelite qiu <autolysis at gmail.com>:
>
>
>>hi David
>>
>> the code snippet
>>
>> int var
>> {
>> get { return var; }
>> set { var = value; }
>> }
>>
>>
>> creates an infinite loop as properties are internally implemented as
>>methods. So when you instantiate the object,
>>
>> Crash c = new Crash(10);
>>
>> This chain of action is what I understand
>>
>> new Crash(10) -> var = 10; -> set { var = 10; } -> get { return var; } ->
>>get { return var; } ->...
>>
>> the error lies in the fact that your property var does not refer to an
>>underlying field. You can try
>>
>> int Var;
>> int var
>> {
>> get { return Var; }
>> set { Var = value; }
>> }
>>
>>
>> regards
>> feelite
>>
>>
>>
>>
>
>Interesting. Could be implemented a new option in the mono compiler to
>show a warning message in this situation? Perhaps it is interesting
>just to file a new Request For Enhancement in bugzilla, isn't it?
>
>
You can, but the mono runtime should throw StackOverflowException in
this case which is a bug. <frlrfsystemstackoverflowexceptionclasstopic.htm>
Marek
More information about the Mono-devel-list
mailing list