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 <[EMAIL PROTECTED]> 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:* [EMAIL PROTECTED]<https://mail.google.com/mail?view=cm&tf=0&[EMAIL
PROTECTED]>[mailto:
[EMAIL PROTECTED]<https://mail.google.com/mail?view=cm&tf=0&[EMAIL PROTECTED]>]
*On Behalf Of *Julien Couvreur
*Sent:* Wednesday, May 23, 2007 1:04 PM
*To:* [email protected]<https://mail.google.com/mail?view=cm&tf=0&[EMAIL
PROTECTED]>
*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
[email protected]<https://mail.google.com/mail?view=cm&tf=0&[EMAIL
PROTECTED]>
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
_______________________________________________
users mailing list
[email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com