Debugging IronPython异常跳到最后一行

Debugging IronPython异常跳到最后一行,debugging,exception,ironpython,ptvs,Debugging,Exception,Ironpython,Ptvs,举一个非常简单的例子: print('Hello world') raise Exception() print('Hello world 2') 在安装了PTV的VS12中调试时引发异常时,该异常会在该文件(3)的最后一行代码上中断。我想它会停在2号线。我尝试了不同的命令行参数,如-X:Tracing或-X:Frames,但我无法让应用程序在实际发生异常的地方中断。看起来好像没有行信息,但当我查看异常的详细信息时,我可以通过堆栈跟踪得到这些信息。您是在托管模式下调试,还是在纯Python模式

举一个非常简单的例子:

print('Hello world')
raise Exception()
print('Hello world 2')

在安装了PTV的VS12中调试时引发异常时,该异常会在该文件(3)的最后一行代码上中断。我想它会停在2号线。我尝试了不同的命令行参数,如
-X:Tracing
-X:Frames
,但我无法让应用程序在实际发生异常的地方中断。看起来好像没有行信息,但当我查看异常的详细信息时,我可以通过堆栈跟踪得到这些信息。

您是在托管模式下调试,还是在纯Python模式下调试?(托管是当您在调用堆栈中看到损坏的函数名时)@PavelMinaev我已将启动模式设置为IronPython(.NET)launcher,将解释器设置为IronPython 64位2.7。我也可以在执行此操作时调试C#代码。在这种情况下,您实际上根本没有使用PTVS调试—它只提供编辑体验,但调试器是核心VS语言无关的托管调试器,它使用IronPython提供的源信息。所以这确实是IronPython方面的一个bug,因为它没有为它引发的托管异常报告正确的行号。那么我实际上如何使用PTVS调试呢?如果您将启动器切换到标准,就会用到这个问题。它通常对Python更敏感,并且会在Python代码上提供一致的更好的结果——不仅对异常,而且对变量等也一样。但是,这样一来,您将失去调试C#代码的能力。