我需要能够将PDB文件包含到我在Visual Studio中运行"发布"命令以创建MSDeploy包时创建的ZIP文件中.
我可以在文件夹中看到PDB文件,但它们没有进入ZIP文件
我需要设置一些配置设置吗?
是的我知道这不是标准做法!
如标题中所述,我认为pdb文件是地图文件的超集.我问这个问题的原因是因为我现在负责维持一个旧系统,它同时会生成pdb和map文件.我想知道pdb文件可用时是否不需要地图文件!
谢谢
我有父进程调用它的子进程。我已经放入import pdb; pdb.set_trace()了子进程代码。
当我启动父对象时,python -m pdb parent.py它会被冻结。调试器不响应我输入的任何命令。但是当我点击quit或continue它确实退出代码时。
看起来 pdb 可以工作,但不会产生任何输出。
$ python -m pdb parent.py
n -m pdb parent.py
> d:\scripts\parent.py(53)<module>()
-> '''
(Pdb) c
Run Code Online (Sandbox Code Playgroud)
它现在停止响应。
根据我中断后得到的痕迹,它在pdb.set_trace()通话后就站在线路上。
>>>>>>>>>>>>>[2013.06.13-10:02:06] : accessed by child.py
Traceback (most recent call last):
File "child.py", line 40, in <module>
sys.stderr = open(Definition_h.ErrLog, 'a', 0, encoding=Definition_h.utf8)
File "d:\scripts\Definition_h.py", line 863, in unicodeOpen
def unicodeOpen(*args, **kwargs):
File "C:\Program Files (x86)\Python 2.5.4\lib\bdb.py", line 50, in trace_dispatch
return self.dispatch_call(frame, arg) …Run Code Online (Sandbox Code Playgroud) 我有一个python脚本,它接受输入参数并运行以响应终端中的以下命令(bash,Mac OSX).
python test.py arg1 arg2
Run Code Online (Sandbox Code Playgroud)
有没有调试模式运行相同的脚本,而无需编辑代码,包括一个很好的方式import pdb和pdb.set_trace()?
例如,如果我正在使用iPython控制台,我可以通过以下方式执行此操作:
%run -d test.py arg1 arg2
Run Code Online (Sandbox Code Playgroud)
这很简单,不是吗?为了在终端中实现同样的目的,我认为以下可能有效,但它没有:
python -c "import pdb; import sys; sys.argv = ['test.py', arg1, arg2];pdb.run('test.py')"
Run Code Online (Sandbox Code Playgroud)
代码使用参数运行,但不是在pdb调试模式下运行.是不是很难做到,我应该坚持使用pdb.set_trace或者iPython的%run -d?
我发现了一个错误,其中io.open()应该传递'utf-8'而不是'utf8'. 下面的最小可执行代码。为什么 IPython 回溯不指示行号,为什么pdb既不报告函数调用存在错误io.open,也不报告代码中的任何内容io.open?pdb我可以使用IPython 调试器或位于其之上的Canopy 调试器来做什么,以便更轻松地调试这个调试器?
检查我的 IPython 版本也很混乱。Canopy 包管理器报告 和 均已ipython 4.0.0-3安装ipython4 4.0.0-9,但import IPython后面的IPython.version_info计算结果为(2, 4, 1, '')。
my_module.py在 Canopy 代码编辑器中:
import io
def my_function(filename):
with io.open(my_other_function(filename), u'r', u'utf8')
def my_other_function(text):
return u'modified' + text
Run Code Online (Sandbox Code Playgroud)
在 IPython 会话中:
In []: import pdb
In []: import my_module
In []: my_module.my_function(filename)
-------------------------------------------------------------------------
TypeError Traceback (most …Run Code Online (Sandbox Code Playgroud) 我试图了解如何使用pdb .post_mortem() 方法。
对于这个给定的文件
# expdb.py
import pdb
import trace
def hello():
a = 6 * 9
b = 7 ** 2
c = a * b
d = 4 / 0
print(c)
tracer = trace.Trace()
Run Code Online (Sandbox Code Playgroud)
命令提示符
'''
# first Try
? python -i expdb.py
>>> pdb.post_mortem()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Program Files\Anaconda3\lib\pdb.py", line 1590, in post_mortem
raise ValueError("A valid traceback must be passed if no "
ValueError: A valid traceback …Run Code Online (Sandbox Code Playgroud) 有没有办法在 pdb 中设置动态断点***,在异常时挂起?
***动态,不绑定任何行号
在 pycharm (pydev) 中,这是可能的并且是一个不错的功能,但很多时候,由于 pycharm 调试器的限制(没有跳转功能和/或机器没有 pycharm),我不得不使用 pdb。
我正在尝试调试for循环,并想看看它运行了一段时间后内部发生了什么。它迭代了数千次,我想每隔一百左右检查一下发生了什么。有没有办法告诉pdb运行下一个命令几百次,以便我可以快速检查?
就像在 matlab 中一样,Jupyter 中是否有可能在调试模式下运行函数,其中执行在断点处暂停,而在运行模式下函数会忽略断点?在一个简单的例子中,比如
from IPython.core.debugger import set_trace
def debug(y):
x = 10
x = x + y
set_trace()
for i in range(10):
x = x+i
return x
debug(10)
Run Code Online (Sandbox Code Playgroud)
我们是否有可能调用该函数以使 set_trace 被忽略并且函数正常运行?
我想要这个的原因是,在我的函数中,我放置了很多设置跟踪,当我只想在没有跟踪的情况下运行时,我需要注释所有设置跟踪。有更容易的方法吗?
我在 Python 3.6 上遇到了一个非常奇怪的问题。在我的代码中间,我调用import pdb; pdb.set_trace()调试一些代码。
然后我无法正确调试,例如:
(Pdb) abc = 3
(Pdb) [abc for _ in range(2)]
*** NameError: name 'abc' is not defined
(Pdb) [abc, abc]
[3, 3]
Run Code Online (Sandbox Code Playgroud)
似乎每当我使用列表推导式时,都会出现未定义变量的问题。但是,如果我在打开 Python 后立即调用调试器,我不会观察到这种行为,一切运行正常。
任何想法为什么我有这个问题?