我希望在交互式调试会话中输入的每个命令后,将python pdb'l'命令的输出打印到屏幕上.
有没有办法设置python pdb来做到这一点?
我使用的是最近升级的 Visual Studio 2010。该解决方案包含 25 个项目,制作了十几个 dll 和 exe。我正在尝试调试特定问题,但由于未加载符号而无法调试。
我得到“无法找到或打开 PDB 文件”,这是针对项目生成的 DLL 之一的 PDB 文件,所有其他 PDB 文件都加载得很好。PDB文件与dll存在于同一目录中,我也清理并重建了解决方案。
此外,我对 pdb 名称运行了进程资源管理器过滤,这表明它已被找到、打开并成功读取。奇怪的是,它还继续在其他位置寻找 pdb。
有没有人对此有任何想法?
使用Visual Studio 2010远程调试C#.dll - 获取.PDB文件不匹配 - 任何它绝对是来自构建...............
新信息:[[此问题尚未解决.我有三台电脑:a)XP sp3,b)XP sp3和c)Vista sp1,我可以在a)和c)上构建最简单的测试程序,并使用模块窗口 - 选择我的test5.exe并加载创建它时创建的.pdb - 同一个日期同一时间相同的文件夹...但是Visual Studio说"在此文件夹中找不到匹配的符号文件" - 所有加载正确的.pdb的努力都失败而没有匹配投诉....是:a)远程b)或c) - 或 - c)远程a)或b)---帮助!]]
我已经隐式和明确地设置了.PDB的位置 - 无所谓....
我已将符号设置设置为取消选中源文件必须完全匹配....
我没有看到Errs ....
只是:
C:\POSWIN\DBS.KGW.tst7.pdb: Cannot find or open the PDB file.
C:\Projects\SP\DBS.KGW.tst7STUB\DBS.KGW.tst7\obj\Debug\DBS.KGW.tst7.pdb: PDB does not match image.
C:\Projects\SP\DBS.KGW.tst7STUB\DBS.KGW.tst7\bin\Debug\symbols\DLL\DBS.KGW.tst7.pdb: Cannot find or open the PDB file.
C:\Projects\SP\DBS.KGW.tst7STUB\DBS.KGW.tst7\bin\Debug\DLL\DBS.KGW.tst7.pdb: Cannot find or open the PDB file.
C:\Projects\SP\DBS.KGW.tst7STUB\DBS.KGW.tst7\bin\Debug\DBS.KGW.tst7.pdb: PDB does not match image.
C:\Projects\SP\DBS.KGW.tst7STUB\DBS.KGW.tst7\bin\Debug\MicrosoftPublicSymbols\symbols\DLL\DBS.KGW.tst7.pdb: Cannot find or open the PDB file.
C:\Projects\SP\DBS.KGW.tst7STUB\DBS.KGW.tst7\bin\Debug\MicrosoftPublicSymbols\DLL\DBS.KGW.tst7.pdb: Cannot find or open the PDB …Run Code Online (Sandbox Code Playgroud) 基本上,标题.
我试图追踪在大型代码库中发生虚假打印的位置,并且我想打破,或者在打印"发生"时以某种方式获得堆栈跟踪.有任何想法吗?
我想密切监视从某个函数调用的函数调用链。
import pdb; pdb.set_trace()
res = api.InsertVideoEntry(video_entry, video)
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种方法来轻松查看api.insertVideoEntry(video_entry, video)调用foo()which call bar()which calls 的调用baz(),
这是一个非常粗糙的图表来说明我的意思。我不需要这种形式的信息,但这是我正在寻找的那种信息。
api.insertVideoEntry()
foo()
bar()
baz()
baz2()
log()
finish()
Run Code Online (Sandbox Code Playgroud) 我想知道如何'~/.local/lib/python2.7/site-packages'进入我的 ' sys.path'.
它是由PEP 370定义还是由pip(我使用 --user 选项安装包)修改?
我还发现如果我移动'~/.local/lib/python2.7/site-packages'
到'~/.local/lib/python2.7/site-packages.bak'.
我将此功能添加Ad-hoc data breakpoints到.pystartup,但没有任何变化。
有没有人对此有任何想法?
我相信你发现自己处于这种情况,我怀疑没有办法摆脱这种情况。假设您运行了一些引发异常的 python 代码,然后您想查看它,但在这样做时不小心引发了另一个异常。如果您现在尝试事后调试,您将看到后一个异常的回溯。我的问题是,前者会永远消失吗?
例子:
def my_buggy_function(x):
y = x + 1
raise RuntimeError
Run Code Online (Sandbox Code Playgroud)
第 1 步:我提出了一个错误,我想对其进行调试
my_buggy_function(1)
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
/home/user/<ipython-input-1-430423eaff77> in <module>()
3 raise RuntimeError
4
----> 5 my_buggy_function(1)
/home/user/<ipython-input-1-430423eaff77> in my_buggy_function(x)
1 def my_buggy_function(x):
2 y = x + 1
----> 3 raise RuntimeError
4
5 my_buggy_function(1)
RuntimeError:
Run Code Online (Sandbox Code Playgroud)
第 2 步:我尝试调试错误但不小心引发了另一个错误(在这种情况下,我没有加载 pdb)
pdb.pm() #Oops..
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
/home/user/<ipython-input-2-619d77b83f20> in <module>()
----> 1 pdb.pm()
NameError: name 'pdb' is not …Run Code Online (Sandbox Code Playgroud) 我正在使用Python 2.6.6,并使用pdb来调试我的Python程序,但我不清楚pdb中"next"和"until"之间的区别是什么,看起来它们都将继续执行直到下一行在当前的功能.
我在lambda函数中遇到了一个重新定位的问题.我可以成功输出foo到stdout但是在使用max()包含a 时出现错误lambda- 请参阅下面的简化代码...
总而言之,我正在尝试budget在未知数量的一阶键中找到嵌套键的最大值.
(Pdb) foo = self.some_method() # some_method() returns a dict, printed in the next step
(Pdb) pp foo
{'1': {'count': 1,
'extra_data': {'activity-count': 1,
'budget': 0,
[...MORE KEY-VALUE PAIRS HERE...]
'version': 1},
[...LOTS MORE KEY-VALUE PAIRS HERE...]
'elements_total': defaultdict(<type 'int'>, {'result': 1, 'another_key': 2}),
'extra_year_data': defaultdict(<function <lambda> at 0x10e05bd70>, {})},
'2': {'count': 1,
'extra_data': {'activity-count': 1,
'budget': 3,
[...MORE KEY-VALUE PAIRS HERE...]
'version': 1},
[...LOTS MORE KEY-VALUE PAIRS HERE...] …Run Code Online (Sandbox Code Playgroud)