<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Sep 21, 2017 at 12:03 AM, Phil B <span dir="ltr"><<a href="mailto:pbpublist@gmail.com" target="_blank">pbpublist@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> <br><div dir="auto"><div><br><div class="gmail_extra"><br><div class="gmail_quote">On Sep 18, 2017 11:12 PM, "Ben Coman" <<a href="mailto:btc@openinworld.com" target="_blank">btc@openinworld.com</a>> wrote:<br type="attribution"><blockquote class="gmail-m_3177340391194962quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><div dir="auto"><div dir="auto"><br></div><div dir="auto">(You folks do some nice work in VM-land... sure would be nice if it were more easily reproducible by those of us who don't work with the internals daily.  For example: what is the recommended way to build a VMMaker image these days?  Tried the obvious ways in Squeak 5.1 and Pharo 6.1 and both failed...)</div></div></div></blockquote><div><br></div><div>Should be as easy as...</div><div>$ git clone <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm.git" target="_blank">https://github.com/OpenS<wbr>malltalk/opensmalltalk-vm.git</a></div><div>$ cd opensmalltalk-vm/build.linux..<wbr>../pharo.cog.spur/build.debug/</div><div>$ ./mvm</div><div>...and look for binaries in "products" directory.  </div><div><br></div><div>Maybe there are times when your installed autotools versions conflicts (IIUC Eliot sometimes has problems on newer Linux versions).</div><div>If you hit such problems, one path forward may be to leverage Luke's work to produce a Nix build, which "should" be entirely reproducible on anyone's environment.  </div><div>  <a href="http://forum.world.st/Fwd-Nix-package-for-Pharo-flavor-of-opensmalltalk-vm-td4942450.html" target="_blank">http://forum.world.st/Fwd-Nix-<wbr>package-for-Pharo-flavor-of-op<wbr>ensmalltalk-vm-td4942450.html</a><br></div><div>  <a href="http://forum.world.st/nix-based-build-system-was-problem-with-configure-and-libGL-on-CentOS-6-5-td4944335.html" target="_blank">http://forum.world.st/nix-base<wbr>d-build-system-was-problem-<wbr>with-configure-and-libGL-on-<wbr>CentOS-6-5-td4944335.html</a><br></div><div>@Luke, could you refresh me on how to kick off a Nix Pharo VM build on a non-NixOS platform?<br></div><div><br></div><div>cheers -ben</div><div> </div></div></div></div></blockquote></div></div></div><div dir="auto"><br></div><div dir="auto">Ben,</div><div dir="auto"><br></div><div dir="auto">Building the VM hasn't been my issue (it's been working nicely for me in a variety of Linux environments), building the VMMaker image has been the problem.  A while back I was using Eliot's buildsqueaktrunkvmmakerimage.<wbr>sh script but that stopped working for me (I think the last time it successfully ran for me was pre-github migration).  Last week I tried to manually install the VMMaker package in Squeak and got an error, this week I tried to install it via Pharo and got a different error.  So rather than try to debug any of these approaches which may be obsolete, I was really trying to ask for pointers to the currently recommended method to build a VMMaker image.</div></div></blockquote><div><br></div><div>In practice, all the people using the simulator have images that were built when Eliot's script was working, and we update the image with the new VMMaker code but don't rebuild them. I know its not good but we had to keep things working with limited ressources.</div><div><br></div><div>So there are 2 solutions:</div><div>- you ask someone with a working image to give it to you and you start from there (by loading the most recent code, etc.).</div><div>- you fix Eliot's script or you bug him until he fixes it.</div><div><br></div><div><br></div><div>I read quickly your report but it looks to me that 1 can be debugged through the simulator while 2,3,4 needs to be debugged with gdb. I am not sure with 3 since Eliot added some simulation support for sockets at some points.</div><div><br></div><div>For gdb with the VM the main things to know are:</div><div>- Debug VM is very slow, Assert VM is half the perf of prod VM for most things (though stack page switch for example is much slower in Assert VM).</div><div>- in general you want an assert or debug VM and put a breakpoint on warning, so when an assertion fails gdb stops and you can try to figure things out. </div><div>- you need to compile the debug VM to access C variables if you need so.<br></div><div>- you can call debug functions printStackAllStack, printFrame, printCogMethod, etc. in gdb. You can try to look in Slang in the VMMaker code for the list of debug functions available (<api> pragma). You often need to manually cast parameters to usqint / sqint in gdb to correctly call those functions.</div><div><br></div><div>As always for simulator or gdb the best is to save an image about to crash, start it on the debug platform and make it crash. </div><div><br></div><div>Good luck and have fun.</div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><div dir="auto">Thanks,</div><div dir="auto">Phil</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail-m_3177340391194962quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><div dir="auto"><div dir="auto"><br></div>Thanks,</div><div dir="auto">Phil<br><div class="gmail_extra" dir="auto"><br><div class="gmail_quote">On Sep 18, 2017 7:38 PM, "tim Rowledge" <<a href="mailto:tim@rowledge.org" target="_blank">tim@rowledge.org</a>> wrote:<br type="attribution"><blockquote class="gmail-m_3177340391194962m_-5534209024655112212gmail-m_1617974822137480658quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
When possible you’re much better off using the VMSimulator to examine an image.<br>
<div class="gmail-m_3177340391194962m_-5534209024655112212gmail-m_1617974822137480658quoted-text"><br>
> On 18-09-2017, at 4:25 PM, Phil B <<a href="mailto:pbpublist@gmail.com" target="_blank">pbpublist@gmail.com</a>> wrote:<br>
><br>
> Using gdb to explore a running image?  Blog post or video format is great.  Most of what I've run across is related to the internals of the VM rather than debugging an image.  My gdb skills are pretty rusty plus I suspect that not knowing all of the helper functions available in the VM (and how to best use them in a debugging workflow) is slowing me down.<br>
<br>
<br>
</div>tim<br>
--<br>
tim Rowledge; <a href="mailto:tim@rowledge.org" target="_blank">tim@rowledge.org</a>; <a href="http://www.rowledge.org/tim" rel="noreferrer" target="_blank">http://www.rowledge.org/tim</a><br>
"Bother" said Pooh, as his rucksack opened whilst skydiving<br>
<br>
<br>
</blockquote></div><br></div></div></div>
<br></blockquote></div><br></div></div>
<br></blockquote></div><br></div></div></div>
<br></blockquote></div><br></div></div>