[Vm-dev] Segfaulting cog vm on FreeBSD

Petr Fischer petr.fischer at me.com
Sun Jul 17 20:22:52 UTC 2016


Hello! Moving discussion about %subj% from pharo-dev list.
My problem on FreeBSD:

There is a linux compatibility layer on FreeBSD (even 64bits on 11-CURRENT), so there is no theoretical problem running pharo linux vms.
But: complete linux libraries comming from centos 6.7, where is glibc older than 2.15 - so, no luck with actual default pharo vm from pharo.org. 
So I compiled my own pharo-vm on CentOS 6.7 with old glibc, everything is OK on Linux CentOS box, but on the FreeBSD side, vm is segfaulting (my own compiled "stack" vm is more stable, but segfaulting too).
I compiled from pharo-vm git:
https://github.com/pharo-project/pharo-vm

I am building "PharoVMSpur32Builder buildUnix32" (there is some old "PharoVMBuilder buildFreeBSD", but probably unmaintained).

Why I can't compile directly on the FreeBSD without Linux compatibility layer? Because there is a step, when I need to Load VMMaker into functional stable image - when I use my compiled vm, of course, segfaulting while loading VMMaker... Therefore I am going via Linux comp. layer. Native port of vm for FreeBSD will be the next step.

Ok, ok, next steps... I compiled my own "debug vm" (cog, spur, again on CentOS 6.7) and here is some outputs from my gdb session (I am definitely not Core C hacker):

Crashing code snippet - function is "scavengeReferentsOf" and crashing line is 110:
http://pastebin.com/yK7YJig2

Backtrace:
http://pastebin.com/jMgzE9G0

printAllStacks:
http://pastebin.com/VP1nwrsC

Now I am at end with my knowledge (vm internals) - but I can add some printf/log outputs into generated C files, recompile and retest.

Any ideas? Thanks very much. pf


More information about the Vm-dev mailing list