GDB продолжает устанавливать точку останова на строке 7 вместо указанной мной строки - PullRequest
0 голосов
/ 09 июля 2019

Всякий раз, когда я устанавливаю точку останова в моей программе на c в gdb, она устанавливает точку останова на одну строку после строки, которую я указываю в команде "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);
}

Сначала я перечисляю строки кода, используя «list»затем я использую команду «break 6», чтобы добавить точку останова в строке 6, я ожидаю, что результат будет примерно таким: «точка останова 1 в 0x000d: файл char_array.c, строка 6».но на самом деле для этой команды выводится «Точка останова 1 в 0x113d: файл char_array.c, строка 7».Эта строка показывается всякий раз, когда я пытаюсь добавить точки останова на всех строках выше строки 7.Может ли это быть ошибкой?

1 Ответ

2 голосов
/ 09 июля 2019

Вы можете установить точку останова только там, где что-то выполняется.

Строка 6 пуста. Это никогда не будет выполнено. Так что вы не можете поставить точку останова там.

...