gpt4 book ai didi

python - 是否有破解 pdb 内置打印的技巧?

转载 作者:太空狗 更新时间:2023-10-30 01:09:43 26 4
gpt4 key购买 nike

基本上,标题。

我正试图追踪在大型代码库中发生虚假打印的位置,并且我想在打印“发生”时中断或以某种方式获取堆栈跟踪。有什么想法吗?

最佳答案

对于这种特殊情况,您可以将 stdout 重定向到打印输出及其调用者的辅助类。您也可以打破其中一种方法。

完整示例:

import sys
import inspect

class PrintSnooper:
def __init__(self, stdout):
self.stdout = stdout
def caller(self):
return inspect.stack()[2][3]
def write(self, s):
self.stdout.write("printed by %s: " % self.caller())
self.stdout.write(s)
self.stdout.write("\n")

def test():
print 'hello from test'

def main():
# redirect stdout to a helper class.
sys.stdout = PrintSnooper(sys.stdout)
print 'hello from main'
test()

if __name__ == '__main__':
main()

输出:

printed by main: hello from main
printed by main:

printed by test: hello from test
printed by test:

如果您需要更全面的信息,您也可以只打印 inspect.stack()

关于python - 是否有破解 pdb 内置打印的技巧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10742501/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com