[IronPython] Problem stepping into functions in debugger with F11

Julien Couvreur julien.couvreur at gmail.com
Thu May 24 22:10:34 CEST 2007


Thanks a lot for the help.

This command-line switch works for me.
There doesn't seem to be any negative side effects of this switch as far as
I can tell, so I'm happy with this solution until v2.0 comes around ;-)

Thanks again,
Julien Couvreur
http://blog.monstuff.com



On 5/24/07, Dino Viehland <dinov at exchange.microsoft.com> wrote:
>
>  This looks like a bug – the issue here is that there's a section of code
> right after the method prologue which is not associated with any source
> information (see below to see the raw details).  Luckily we have a command
> line switch which will get rid of the extra info and make stepping work for
> you again, and that's –X:NoTraceback (the extra instructions are marking
> line number info so we can extract it back out at runtime).  The ultimate
> result of that switch is that exec'd code will be missing Python line number
> information.
>
>
>
> In v2.0 we have gotten much more serious about getting the debugging
> experience 100% right.  We're starting to bring on test suites to ensure
> that all of our debugging information is emitted correctly, that we step
> through the various control flow blocks in a reasonable way, etc…  In v1.xwe do an alright job but we haven't dedicated the test resources to ensure
> it's a great experience.  Because of that I'm inclined to not open a bug on
> this and just say the experience will be much better in v2.0.  Let me know
> if you think that's the wrong call J.
>
>
>
> 00000000  push        ebp
>
> 00000001  mov         ebp,esp
>
> 00000003  push        edi
>
> 00000004  push        esi
>
> 00000005  push        ebx
>
> 00000006  sub         esp,2Ch
>
> 00000009  xor         eax,eax
>
> 0000000b  mov         dword ptr [ebp-24h],eax
>
> 0000000e  mov         dword ptr [ebp-28h],eax
>
> 00000011  mov         dword ptr [ebp-38h],eax
>
> 00000014  xor         eax,eax
>
> 00000016  mov         dword ptr [ebp-18h],eax
>
> 00000019  mov         dword ptr [ebp-30h],ecx
>
> 0000001c  mov         dword ptr [ebp-34h],edx
>
> 0000001f  cmp         dword ptr ds:[036132FCh],0
>
> 00000026  je          0000002D
>
> 00000028  call        76A35C56
>
> 0000002d  xor         edx,edx
>
> 0000002f  mov         dword ptr [ebp-2Ch],edx
>
> 00000032  xor         edx,edx
>
> 00000034  mov         dword ptr [ebp-38h],edx
>
> 00000037  mov         dword ptr [ebp-28h],0                   <!—F11 steps
> in here
>
> 0000003e  mov         dword ptr [ebp-2Ch],2                   <!—next F11
> ends up here
>
> --- C:\Product\Released\IronPython-1.1\debugger.py-----------------------------
>
> def add(a,b):
>
>     return a+b
>
> 00000045  nop                                                 <!—one more
> and we're in the function
>
> 00000046  mov         edx,dword ptr [ebp-34h]
>
> 00000049  mov         ecx,dword ptr [ebp-30h]
>
> 0000004c  call        dword ptr ds:[001C9150h]
>
> 00000052  mov         esi,eax
>
>
>
>
>
>
>
> *From:* users-bounces at lists.ironpython.com<https://mail.google.com/mail?view=cm&tf=0&to=users-bounces@lists.ironpython.com>[mailto:
> users-bounces at lists.ironpython.com<https://mail.google.com/mail?view=cm&tf=0&to=users-bounces@lists.ironpython.com>]
> *On Behalf Of *Julien Couvreur
> *Sent:* Wednesday, May 23, 2007 1:04 PM
> *To:* users at lists.ironpython.com<https://mail.google.com/mail?view=cm&tf=0&to=users@lists.ironpython.com>
> *Subject:* [IronPython] Problem stepping into functions in debugger with
> F11
>
>
>
> Hi,
>
> I'm running a simple program below. I'm trying to "step into" the "add"
> function. But Visual Studio 2005 and the Microsoft CLR Debugger (from the
> .Net 2.0 SDK) both complain that:
>
> "There is no source code available for the current location."
>
>
>
> They then offer me to view the disassembly.
> Any ideas how to fix this?
>
>
> Note that I do have "Enable Just My Code" turned on (which is the
> default).
>
> Thanks,
> Julien Couvreur
> http://blog.monstuff.com
>
>
>
> Repro steps:
> 1) save the code below to debugger.ipy
> 2) Run ipy.exe debugger.ipy
> 3) You should get a prompt to start debugging the code with your favorite
> debugger, accept it
> 4) The code should be stopped at the breakpoint, you can step forward with
> F10 and then F11
> 5) Trying to step into the call to the "add" method fails as described
> above
>
> def add(a,b):
>     return a+b
>
> import System.Diagnostics
> System.Diagnostics.Debugger.Break()
>
> print add(4, 4)
>
>
> _______________________________________________
> users mailing list
> users at lists.ironpython.com<https://mail.google.com/mail?view=cm&tf=0&to=users@lists.ironpython.com>
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20070524/624069ac/attachment.html>


More information about the Ironpython-users mailing list