相关疑难解决方法(0)

如何在Python中导入'GDB'

我使用的是Python 2.7和Python 3.1.3.但在我的Python中,我无法"导入gdb".

它给了我一个错误:

>>> import gdb
Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
ImportError: No module named gdb
>>>
Run Code Online (Sandbox Code Playgroud)

这是什么原因?我该如何解决这个问题?

python gdb

25
推荐指数
2
解决办法
3万
查看次数

如何编写gdb脚本(使用python)?示例添加断点,运行,我们遇到了什么断点?

我正在尝试用gdb创建一个小单元测试,用于由OpenOCD控制的嵌入式mcu (这使我可以通过gdb服务器控制我的目标).

所以我想用gdb的一些脚本来自动执行此操作.

我想为gdb写一些或多或少的脚本:

  1. 添加几个断点
  2. 启动该程序
  3. 当我们停止时,它停在哪里(获取帧信息)
  4. 放弃.

有任何想法吗?

关于如何在python gdb脚本中执行此操作的示例将是很好的.

谢谢约翰


注意:

假设我们有这个基本结构,或多或少进入test_failed()或test_success(),具体取决于函数start_test()返回的内容.

void test_failed() {    
    while(1);    
}

void test_success() {    
    while(1);    
}

int main(void) {    
    int status = start_test();    

    if( status > 0 ) {    
        test_failed();    
    }    
    test_success();

    while(1);    
}
Run Code Online (Sandbox Code Playgroud)

在gdb中手动执行此操作是非常紧张的,

(gdb) break test_success
Breakpoint 1 at 0x20: file src/main.c, line 9.
(gdb) break test_failed
Breakpoint 2 at 0x18: file src/main.c, line 5.
(gdb) cont
Continuing.

Breakpoint 1, test_success () at src/main.c:9
9       while(1);
(gdb) …
Run Code Online (Sandbox Code Playgroud)

scripting unit-testing gdb openocd gdb-python

13
推荐指数
2
解决办法
2万
查看次数

如何在没有GDB Python API的情况下在C或Python代码中控制gdb?

我试图用python或c编写一个程序,可以使用gdb调试c代码.

我已经阅读了TomInvoke解决方案并从Python控制GDB.但它们或多或少是在python中编写脚本gdb的解决方案.由于我将使用arm-gdb来调试嵌入式程序,我无法在我的gdb中启用python脚本.

我的目标是创建一个gdb的高级抽象.例如,启动gdb,设置一些断点并在我的代码中继续.我还阅读了一些材料gdb/mi界面.但有谁能告诉我如何使用gdb/mi接口创建一个gdb进程并从c/python代码与gdb进行通信?(幸运的是我的arm-gdb支持gdb/mi接口).

c python gdb arm

13
推荐指数
1
解决办法
4700
查看次数

标签 统计

gdb ×3

python ×2

arm ×1

c ×1

gdb-python ×1

openocd ×1

scripting ×1

unit-testing ×1