On Mon, Aug 25, 2008 at 10:06 PM, Stephen Simmons
<[EMAIL PROTECTED]> wrote:
> I was wondering ... for problems like these, is there a way to debug what is
> going on internally?  Is standalone PIR the best way?
> Stephen Simmons
>
> On Mon, Aug 25, 2008 at 8:11 AM, Moritz Lenz via RT <
> [EMAIL PROTECTED]> wrote:
>
>> Stephen Simmons (via RT) wrote:
>> > # New Ticket Created by  "Stephen Simmons"
>> > # Please include the string:  [perl #58338]
>> > # in the subject line of all future correspondence about this issue.
>> > # <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=58338 >
>> >
>> >
>> > The attached program, primes.p6 seems to work correctly, except that
>> after
>> > processing the numbers from 1-6000+, it segfaults
>> > Here are the last few lines.  Note that it had already output the first
>> two
>> > chunks, and so it was between 6400 and 10000 when it segfaulted.
>> >
>> > 7 5939 5953 5981 5987 6007 6011 6029 6037 6043 6047 6053 6067 6073 6079
>> 6089
>> > 6091 6101 6113 6121 6131 6133 6143 6151 6163 6173 6197 6199 6203 6211
>> 6217
>> > 6221 6229 6241 6247 6257 6263 6269 6271 6277 6287 6299 6301 6311 6317
>> 6323
>> > 6329 6337 6343 6353 6359 6361 6367 6373 6379 6389 6397 6421 6427 6449
>> 6451
>> > 6469 6473 6481Segmentation fault
>>
>> When you s/print/say/ you see that it gets as far as 9949 (no line
>> buffering any more) before the segfault, at least on my machine.
>> Interestingly enough this is no garbage collection problem, because it's
>> reproducible with the -G option to parrot as well.
>>
>> The fault is also reproducible when you move sub is_prime to a separate
>> package and precompile it with
>> ../../parrot perl6.pbc --target=pir Prime.pm > Prime.pir
>> and then 'use Prime;' in the script.
>>
>> Maybe that motivates some brave debugging soul...
>>
>>
>> Moritz
>>
>> --
>> Moritz Lenz
>> http://moritz.faui2k3.org/ |  http://perl-6.de/
>>
>>
>>
>

If we're getting segfaults, yes, standalone PIR makes it much easier
for core developers to determine where in the parrot core the segfault
is occurring. In general, the smaller the PIR, the easier it is to
track.

Also, if you can duplicate the error with pure PIR, that can help rule
out a segfault in any C code in languages/perl6.

Finally, the smaller the test case, the more likely it is to get added
as a regression test.

Regards.




-- 
Will "Coke" Coleda

Reply via email to