[Vm-dev] VM debugging - breakpoint issue on Windows

Eliot Miranda eliot.miranda at gmail.com
Thu Apr 19 18:27:19 UTC 2018


Hi Vincent,

On Thu, Apr 19, 2018 at 9:30 AM, <Vincent.Blondeau at lamresearch.com> wrote:

>
> Hi Dave,
>
> The optimization options are already disabled in the debug build and
> -ggdb2 is used. So, the real code is used.
>
> How do I change the build in a way that the plugin is external?
>

I see the same issue as you.  I'll take a look.


>
> Any experience is always welcome! Thanks!
>
> Vincent
>
>
> -----Original Message-----
> From: Vm-dev [mailto:vm-dev-bounces at lists.squeakfoundation.org] On Behalf
> Of David T. Lewis
> Sent: Wednesday, April 18, 2018 17:35
> To: Open Smalltalk Virtual Machine Development Discussion <vm-dev at lists.
> squeakfoundation.org>
> Subject: Re: [Vm-dev] VM debugging - breakpoint issue on Windows
>
>
> Hi Vincent,
>
> I am not a Windows user so this may be completely wrong, but one thing I
> have found in debugging plugins on Linux is that it is often necessary to
> compile with optimization turned off so that the debugger is dealing with
> the "real" code.
>
> I am guessing that perhaps your debugger is trying to use the C source
> code to locate something that got optimized away by the compiler.
>
> Sometimes it is helpful to compile the plugin as an external plugin (a
> DLL). You can compile it with zero optimization and compiler flags set (-O0
> -g or similar), and the resulting plugun should be visible to the debugger.
> The plugin that you compile this way should work with any VM (optimized or
> not) and the debugger should still be able to see it.
>
> I have not done this on Windows, but that is my experience on Linux so
> maybe it will help.
>
> Dave
>
>
> On Wed, Apr 18, 2018 at 06:33:12PM +0000, Vincent.Blondeau at lamresearch.com
> wrote:
> >
> > Hi,
> >
> > I would like to set up a breakpoint in the VM but I got this error when
> running:
> > Cannot insert breakpoint 1.
> > Error accessing memory address 0x509cad: Input/output error.
> >
> > For this, I am using gdb under Cygwin (same issue with powershell) and
> invoque the primitive I want to test:
> > pharo.cog.spur/builddbg/vm $  gdb --args ./Pharo.exe -headless
> ../..somewhereOnMyDisk.../Pharo.image eval "FilePluginPrims new
> primitiveStdioDescriptorIsATTY."
> >
> > I get these results:
> > GNU gdb (GDB) 7.6.1
> > Reading symbols from C:\Users\BlondVi\Documents\
> GitRepos\opensmalltalk-vm\build.win32x86\pharo.cog.spur\
> builddbg\vm\Pharo.exe...done.
> >
> > Next, I set a breakpoint in the primitive C method I created and run the
> app:
> >
> > (gdb) br sqStdioDescriptorIsATTY
> > Breakpoint 1 at 0x509cb6: file ../../platforms/win32/plugins/FilePlugin/sqWin32FilePrims.c,
> line 337.
> > (gdb) r
> > Starting program: C:\Users\BlondVi\Documents\GitRepos\opensmalltalk-vm\
> build.win32x86\pharo.cog.spur\builddbg\vm/./Pharo.exe --headless
> ../../../../../../../../..temp/logoVM/logoVM.image eval "FilePluginPrims
> new primitiveStdioDescriptorIsATTY."
> > [New Thread 27416.0x95bc]
> > [New Thread 27416.0xa1d0]
> > [New Thread 27416.0x3aa4]
> > [New Thread 27416.0x88bc]
> > (gdb) Warning:
> > Cannot insert breakpoint 1.
> > Error accessing memory address 0x509cad: Input/output error.
> >
> > What should I do to set the breakpoint correctly?
> >
> > Thanks in advance,
> >
> > Vincent Blondeau
> >
>
>


-- 
_,,,^..^,,,_
best, Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20180419/f50980ef/attachment.html>


More information about the Vm-dev mailing list