GDB继续在第7行而不是我指定的行设置断点

时间:2019-07-09 20:55:38

标签: c debugging gdb

每当我在gdb的c程序中设置断点时,它都会在“ break”命令中指定的行之后一行设置断点。

所以我想研究一些简单的c代码只是为了让我开始用c进行调试,我在代码的第6行设置了一个断点,但它继续在第7行设置了断点。

#include <stdio.h>
#include <string.h>

int main() {
    char str_a[20];

    strcpy(str_a, "Hello, world!\n");
    printf(str_a);
}

我首先使用“列表”列出代码行,然后使用命令“ break 6”在第6行添加一个断点,我希望输出是这样的:“在0x000d处的断点1:文件char_array.c,第6行。”但是此命令的输出实际上是“在0x113d处的断点1:文件char_array.c,第7行”。每当我尝试在第7行以上的所有行上添加断点时,该行都会吐出。这可能是错误吗?

1 个答案:

答案 0 :(得分:2)

您只能在执行某些操作的地方设置断点。

第6行为空白。它永远不会执行。因此,您不能在此处放置断点。