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

David T. Lewis lewis at mail.msen.com
Thu Apr 19 17:33:32 UTC 2018


I don't have the code in front of me, but look for configuration files
called "plugins.int" and "plugins.ext" that specify plugins to be built
either as internal or external. IIRC, the mvm scripts might clobber your
local edits so you may have to play around with which files to edit where.

Dave

>
> 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?
>
> 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
>>
>
>




More information about the Vm-dev mailing list