相关疑难解决方法(0)

在GDB中显示当前汇编指令

我正在GDB中进行一些汇编级调试.有没有办法让GDB以与显示当前源代码行相同的方式向我显示当前的汇编指令?每个命令后的默认输出如下所示:

0x0001433f      990         Foo::bar(p);
Run Code Online (Sandbox Code Playgroud)

这给了我当前指令的地址,但是我必须继续参考输出,disassemble以便查看我当前正在执行哪条指令.

assembly gdb

169
推荐指数
7
解决办法
19万
查看次数

将PDB断点放在Python代码中的简单方法?

只是一个方便的问题.我在Visual Studio和XCode等IDE中使用调试器有点被宠坏了.我发现必须键入import pdb; pdb.set_trace()设置断点有点笨拙(我宁愿不在文件顶部导入pdb,因为我可能会忘记并将其保留).

是否有一种更简单的方法在Python代码中设置断点,与您在IDE中看到的一样简单明了?

python pdb

97
推荐指数
8
解决办法
8万
查看次数

什么是调试器,它如何帮助我诊断问题?

这是一个通用的问题,以帮助有程序问题的新程序员,但不知道如何使用调试器来诊断问题的原因.

这个问题涉及两类更具体的问题:

  • 当我运行我的程序时,它不会产生我期望的输出我给它的输出.
  • 当我运行我的程序时,它会崩溃并给我一个堆栈跟踪.我已经检查了堆栈跟踪,但我仍然不知道问题的原因,因为堆栈跟踪不能为我提供足够的信息.
  • 当我运行程序时,由于分段错误(SEGV)而崩溃.

[What is a debugger and how can it help me diagnose problems?](https://stackoverflow.com/q/25385173)

language-agnostic debugging

72
推荐指数
2
解决办法
7433
查看次数

如何在调试时让ipdb显示更多上下文行?

默认情况下,在IPython中调试期间,ipdb在代码中显示当前位置上方的一行和一行.

是否有一种简单的方法可以使区域显示更大?我认为它是可配置的,但一直无法找到它.

python debugging ipython

40
推荐指数
4
解决办法
9160
查看次数

你如何从Python源代码中闯入调试器?

你将什么插入到Python源代码中以使其进入pdb(当执行到达那个位置时)?

python debugging breakpoints pdb

24
推荐指数
2
解决办法
8459
查看次数

如何调试从命令行使用python -m运行的Python模块?

我知道可以从命令行调试Python脚本

python -m pdb my_script.py
Run Code Online (Sandbox Code Playgroud)

if my_script.py是一个打算运行的脚本python my_script.py.

但是,my_module.py应该运行python模块python -m my_module.甚至包含相对导入的脚本也应该运行python -m.我怎么能python -m my_modulepdb控制下运行?以下不起作用:

python -m pdb -m my_module
Run Code Online (Sandbox Code Playgroud)

python debugging python-module pdb

24
推荐指数
4
解决办法
1万
查看次数

在pdb中运行Python程序的中断(暂停)?

在gdb中,您可以通过Cc中断(暂停)程序并继续.

你能在pdb中这样做吗?

python debugging pdb

21
推荐指数
2
解决办法
8560
查看次数

在pdb中保存命令历史记录

有没有办法跨会话保存pdb(python调试器)命令历史记录?另外,我可以指定历史长度吗?

这类似于如何使gdb保存命令历史记录的问题?但是对于pdb而不是gdb.

-非常感谢

python debugging

12
推荐指数
3
解决办法
2641
查看次数

ipdb,多线程和自动加载程序导致ProgrammingError

我正在使用ipdb调试器在本地调试多线程Web应用程序(Django,Plone).由于我在调试提示符时发生的自动重载,ipdb似乎常常感到困惑.产生的堆栈跟踪出现了

    /Users/mikko/code/xxxx/venv/lib/python2.7/site-packages/IPython/core/history.pyc in writeout_cache(self, conn)
        605         with self.db_input_cache_lock:
        606             try:
    --> 607                 self._writeout_input_cache(conn)
        608             except sqlite3.IntegrityError:
        609                 self.new_session(conn)

    /Users/mikko/code/xxxx/venv/lib/python2.7/site-packages/IPython/core/history.pyc in _writeout_input_cache(self, conn)
        589             for line in self.db_input_cache:
        590                 conn.execute("INSERT INTO history VALUES (?, ?, ?, ?)",
    --> 591                                 (self.session_number,)+line)
        592
        593     def _writeout_output_cache(self, conn):

    ProgrammingError: SQLite objects created in a thread can only be used in that same thread.The object was created in thread id 4546363392 and this is thread id 140735211872640
Run Code Online (Sandbox Code Playgroud)

在此之后,程序无法关闭(挂起线程)或ipdb本身停止工作.

有没有办法用ipdb迁移这个问题,并使其更安全多线程/自动重载?

编辑:稍微澄清了一下这个问题,因为我认为这可能是IPython问题的根本原因.可能存在某种解决方法,使得IPython只是在重新加载时丢弃历史记录或禁用有问题的IPython SQLite以其他方式写入.

python sqlite ipython pdb ipdb

6
推荐指数
1
解决办法
1290
查看次数

如何调试SCons脚本

我有一个需要调试的SCons脚本。在发生的所有事情中的某个地方,我遇到了问题,我需要找出问题的根源。

我想调试SCons脚本,但是不确定如何设置它。我同时拥有PyCharm和Komodo IDE,但是我不知道如何使它们工作。

我已经试过了:

scons --debug=pdb <args...>
Run Code Online (Sandbox Code Playgroud)

但这使我陷入了SCons的困境;我需要进入我创建的SCons运行的脚本的内部。

有人可以告诉我如何设置PyCharm或Komodo来调试SCons脚本吗?如果那不可能,那么我可以使用其他调试选项。

debugging komodo scons pycharm

5
推荐指数
1
解决办法
2498
查看次数

Python缩进,IF和ELSE的对齐

我是python的新手,我仍然很想知道sytnax是如何工作的,你需要如何将你的If和else联系起来以使其正常工作.我怎么知道哪个还有哪个呢?特别是在使用嵌套代码块时.

在下面的代码中,对于else,然后注释Prime!从我的理解,否则与声明一致,(n % div == 0):但是为什么它与FOR声明相关?

我想到的最后一个其他声明,if n == 2:但是其他声明并没有与之对齐,而是在它之后.对于相同的陈述,if n == 2:为什么在它n += 1之前pime_count +=1而不是之后进行对齐.

我理解Else的位置和if是非常重要的,因为如果我决定移动其中任何一个代码停止工作.我似乎无法理解的是,如果allignment看起来并不一致,那么python如何知道哪个与之相关.

#!/usr/bin/env python
#
# Problem Set 1a
#
# A program that computes and prints the 1000th prime number.
# Finds primes using trial division (least efficient method)
#------------------------------------------------------------

prime_count = 0
n = 2 

while (prime_count <= 1000):
  #if even, check for 2, the only even prime
  if (n % 2 == …
Run Code Online (Sandbox Code Playgroud)

python syntax indentation python-2.7

2
推荐指数
1
解决办法
214
查看次数