отладка с помощью gcc - PullRequest
       3

отладка с помощью gcc

0 голосов
/ 29 декабря 2011

Я хочу скомпилировать файл C с помощью gcc, и мой вопрос заключается в следующем: возможно ли, когда мы допустили ошибку в нашем коде (например, забыли точку с запятой) для gcc, чтобы показать нам исходный код, содержащий ошибку ( s)

Спасибо

Ответы [ 2 ]

2 голосов
/ 29 декабря 2011

Формат диагностики gcc - это номер строки и диагностическое сообщение.Неисправный код не отображается.

Если вы хотите более выразительную диагностику, попробуйте компилятор clang.Формат диагностики clang - это номер строки, номер столбца, диагностическое сообщение и вставка кода, вызывающего сбой, с некоторыми пометками, показывающими, где проблема.

Например, если этот код указан спропущенная точка с запятой после оператора printf:

#include <stdio.h>

int main(void)
{
    int a = 42;

    printf("%d\n", a)

    return 0;
}

Вот разница диагностических сообщений между gcc и clang:

$ gcc -Wall tst.c
tst.c: In function ‘main’:
tst.c:9: error: expected ‘;’ before ‘return’
$ clang -Wall tst.c
tst.c:7:22: error: expected ';' after expression
    printf("%d\n", a)
                     ^
                     ;
1 diagnostic generated.
$
1 голос
/ 29 декабря 2011

gcc выведет (приблизительную) строку и позицию, в которой произошла ошибка, и в каком файле.

Но, нет, gcc не повторяет ваш код;вам придется открыть файл и перейти к этой строке.

Как правило, ваша Интегрированная среда разработки, однако, позволит вам щелкнуть ссылку на ошибку в выводе gcc и сразу перейти к ней.на эту линию.Это верно для (по крайней мере) Eclipse, Anjuta и Emacs.

(И всегда используйте -Wextra)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...