Komodo - 暂停程序时观察变量并执行代码

2 投票
1 回答
709 浏览
提问于 2025-04-15 15:52

在Visual Studio这个开发环境里,我可以随时暂停一个程序,查看它的变量,想看什么就看什么。我发现,在Komodo这个开发环境里,当程序崩溃并停止运行时,我也可以做同样的事情。但是奇怪的是,当我手动暂停程序时,似乎就无法做到这一点。我是不是做错了什么,还是说这根本就不可能?如果是后者,谁能告诉我为什么呢?这是和开发环境有关,还是和Python有关呢?

谢谢

补充问题:那我该怎么继续运行程序呢?我看到在调用code.interact(local = locals())之后,程序的表现就像还在运行一样,所以我不能点击“运行”按钮,只能点击“暂停”或“关闭”。

1 个回答

3

如果你在你的程序里放入了

import code
code.interact(local=locals())

那么你就会进入一个Python解释器的界面。(可以参考这个链接:查看正在运行的Python程序的方法

这和暂停Komodo有点不同,但也许你可以用它来达到相似的效果。

按下Ctrl-d可以退出Python解释器,这样你的程序就可以继续运行了。

你可以使用traceback模块来查看调用栈:

import traceback
traceback.extract_stack()

比如,这里有一个装饰器可以打印调用栈:

def print_trace(func):
    '''This decorator prints the call stack
    '''
    def wrapper(*args,**kwargs):
        stacks=traceback.extract_stack()
        print('\n'.join(
            ['  '*i+'%s %s:%s'%(text,line_number,filename)
             for i,(filename,line_number,function_name,text) in enumerate(stacks)]))
        res = func(*args,**kwargs)
        return res
    return wrapper

用法如下:

@print_trace
def f():
    pass

撰写回答