草庐IT

python - 如何让 pdb 识别源在运行之间发生了变化?

据我所知,pdb无法识别源代码在“运行”之间何时更改。也就是说,如果我正在调试,注意到一个错误,修复那个错误,然后在pdb中重新运行程序(即不退出pdb),pdb将不会重新编译代码。即使pdb列出了新的源代码,我仍然会调试旧版本的代码。那么,pdb不会随着源代码的变化而更新编译后的代码吗?如果没有,有没有办法让它这样做?我希望能够留在单个pdbsession中,以便保留我的断点等。FWIW,gdb会注意到它正在调试的程序在其下方发生更改,尽管只是在重新启动该程序时。这是我试图在pdb中复制的行为。 最佳答案 以下迷你模块可能会有所帮

Emacs 中的 Python 模式 : No such file or directory, pdb

我有一个python脚本,我想用python-mode调试它.我读了thisthread我可以使用M-xpdb调试我的python脚本,但是我收到以下错误:Searchingforprogram:nosuchfileordirectory,pdb我可以在迷你缓冲区的提示中提供python-mpdbmy_source_file.py,但如果Emacs可以直接从我运行M-x的文件中推断出这个命令就好了pdb更新:运行于:红帽企业Linux服务器版本5.1(Tikanga)Emacs23.3.1路径之间的差异我在运行M-:exec-path和运行M-:(getenv"PATH")时得到不同的

python - 如何使用远程 pdb 连接调试在 Heroku 上运行的 Django 应用程序?

为了调试我在Heroku上看到但在我的本地机器上没有看到的错误,我正在尝试进行逐步调试。典型的importpdb;pdb.set_trace()方法不适用于Heroku,因为您无权访问连接到您的应用程序的控制台,但显然您可以使用rpdb,一个“远程”版本的pdb。所以我安装了rpdb,添加了importrpdb;rpdb.set_trace()在适当的位置。当我发出命中rpdb行的请求时,应用程序按预期挂起,我在我的heroku日志中看到以下内容:pdbisrunningon3d0c9fdd-c18a-4cc2-8466-da6671a72cbc:4444好的,那么如何连接到正在运行的

python - 如何在没有 dunder setattr 或 pdb 的情况下观察 python 中的变量变化

有一个大型python项目,其中一个类的一个属性在某些地方有错误的值。它应该是sqlalchemy.orm.attributes.InstrumentedAttribute,但是当我运行测试时它是常量值,假设是字符串。有什么方法可以在Debug模式下运行python程序,并在代码行的每一步后自动运行一些检查(如果变量类型改变)?附言我知道如何在检查和属性装饰器的帮助下记录类实例属性的更改。可能在这里我可以将此方法与元类一起使用...但有时我需要更通用和更强大的解决方案...谢谢。附言我需要类似的东西:https://stackoverflow.com/a/7669165/816449,

python - PDB 中的自动完成和制表键

我一直在尝试让TAB在(pdb)提示符下执行除插入制表符之外的其他操作。我的想法是触发自动完成,例如here或here,但tab键除了向pdb添加制表符外没有做任何其他事情。因此:(pdb)var+tabKeyPressed我想得到:(pdb)variable代替:(pdb)var[] 最佳答案 iPython是针对此问题的第三方解决方案。有时你只能依赖普通的Python。我找到了2个解决方案。Per-shell解决方案-使用模块“rlcompleter”:$python3Python3.4.3(default,Sep142016,

python - PDB 不会在断点处停止

我对直接使用pdb进行调试还很陌生,在调试我的Django应用程序时遇到了一些问题。这是我正在做的:python-mpdbmanage.pyrunserver(pdb)bcore/views.py:22Breakpoint2at/Users/raphaelcruzeiro/Documents/Projects/pdb_test/core/views.py:22(Pdb)c但是执行直接通过断点。我错过了一些命令吗?手册没有详细说明如何设置断点。 最佳答案 我遇到过同样的问题。尝试像python-mpdb./manage.pyrunse

c# - 调试 DLL 的发布版本(使用 PDB 文件)

如果我有一个DLL(以Release模式构建)和相应的PDB文件,是否可以调试(单步执行)该DLL中包含的类/方法?如果是这样,所需的步骤/配置是什么(例如,将PDB文件放在哪里)?编辑:如果PDB文件与DLL位于同一位置(在简单控制台测试应用程序的bin/debug目录中)。我可以看到DLL的符号已加载(在“输出”窗口和“模块”窗口中),但我仍然无法进入该DLL的方法。这可能是编译器优化的结果(正如迈克尔在他的回答中所描述的那样)吗? 最佳答案 如果pdb位于dll旁边(就像intellisensexml文件一样),通常(至少对我

c# - 有没有办法将 pdb 文件与 ilmerge 合并?

出于各种原因,我们使用ilmerge将所有应用程序程序集放入一个文件中,因此用户只需处理一个文件。不幸的是,似乎没有办法将.pdb文件与程序集合并。有人知道解决这个问题的方法吗? 最佳答案 好吧,我想出了这个,虽然花了一段时间。那篇文章的/ndebug正好倒过来。来自ILMerge附带的发行说明(ILMerge.doc,强调我的):2.8DebugInfopublicboolDebugInfo{get;set;}Whenthisissettotrue,ILMergecreatesa.pdbfilefortheoutputassemb

c# - 创建调试信息文件 GG.PDB 时出现意外错误“--”

当我尝试构建我的项目时,它返回以下错误:错误1​​意外错误创建调试信息文件'D:\Documents\Lance\Documents\School\Capstone\GG\GG\obj\Debug\GG.PDB'--''GG由于突然的电源问题(可能),我最近不幸重启了我的PC。这是在项目构建期间,在此问题开始之前。当PC重新上线时,我注意到我在突然断电之前对程序所做的更改没有保存。而且,它不会再构建了。 最佳答案 这对我有用:关闭VS.NET在Windows资源管理器中浏览到项目删除/obj/文件夹。从/bin中删除项目输出(.dl

c# - PDB 文件在第二次编译时变大,然后保持相同大小

使用以下简单文件:usingSystem;publicclassProgram{[STAThread]publicstaticvoidMain(string[]args){Console.WriteLine("Boo");}}然后使用以下命令:csc/target:exe/debug:pdbonlyHelloWorld.cs如果您运行此命令并且PDB尚不存在,则PDB文件大小为12KB。否则,如果PDB文件存在,则新文件大小为14KB。Microsoft(R)VisualC#Compilerversion4.0.30319.17929.NET4.5有人知道如何解释这个吗?更新:我在.N