treeform / pixie

Full-featured 2d graphics library for Nim.
MIT License
743 stars 28 forks source link

Core dump while executing ctx.strokeCircle #392

Closed kwhitefoot closed 2 years ago

kwhitefoot commented 2 years ago

Found another bug or at least an exception that cannot be caught. The call to ctx.strokeCircle is inside a try block. I'm not sure if this is a bug in pixie or in nim or both.

I'll try to create a small stand alone program and post it as soon as I can.

I can also try to debug it myself; can you give me a word or two of advice on how to go about that? If I clone the pixie github repo, how do I make my code import from that repo instead of the installed version?

Traceback (most recent call last) /home/kj/dev/nim/pixie-genes/genetic_picture1.nim(63) genetic_picture1 /home/kj/dev/nim/pixie-genes/genetic_picture1.nim(40) ratchet /home/kj/dev/nim/pixie-genes/interpreter.nim(563) interpret /home/kj/dev/nim/pixie-genes/interpreter.nim(382) interpret /home/kj/.nimble/pkgs/pixie-4.0.1/pixie/contexts.nim(757) strokeCircle /home/kj/.nimble/pkgs/pixie-4.0.1/pixie/contexts.nim(392) stroke /home/kj/.nimble/pkgs/pixie-4.0.1/pixie/contexts.nim(158) stroke /home/kj/.nimble/pkgs/pixie-4.0.1/pixie/paths.nim(1996) strokePath /home/kj/.nimble/pkgs/pixie-4.0.1/pixie/paths.nim(1610) fillShapes /home/kj/.nimble/pkgs/pixie-4.0.1/pixie/paths.nim(1126) partitionSegments /home/kj/.choosenim/toolchains/nim-1.6.2/lib/system/gc.nim(494) newSeq /home/kj/.choosenim/toolchains/nim-1.6.2/lib/system/gc.nim(486) newObj /home/kj/.choosenim/toolchains/nim-1.6.2/lib/system/gc_common.nim(423) prepareDealloc SIGSEGV: Illegal storage access. (Attempt to read from nil?) Segmentation fault (core dumped) Error: execution of an external program failed: '/home/kj/dev/nim/pixie-genes/genetic_picture1 ' kj@willikins:~/dev/nim/pixie-genes$

guzba commented 2 years ago

A small program will be great, this is probably another relatively easy fix once we identify the issue.

As for debugging, you can clone the pixie repo and then open a terminal to that pixie dir and enter nimble develop to use that local version for pixie imports instead of the nimble downloaded version.

kwhitefoot commented 2 years ago

I haven't been able to isolate the cause of this and I have since rewritten my program and it hasn't happened since. So while I think it is a bug perhaps it is rare enough to not need an open issue.

treeform commented 2 years ago

Ok I'll close this for now. Feel free to reopen when you have a repro sample.