[IronPython] Problem stepping into functions in debugger with F11
Julien Couvreur
julien.couvreur at gmail.com
Thu May 24 13:10:34 PDT 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://lists.ironpython.com/pipermail/users-ironpython.com/attachments/20070524/624069ac/attachment-0001.html
More information about the users
mailing list