Re: Как строить дебажную инфу для отладки макросов?
От: kov_serg Россия  
Дата: 23.06.20 21:16
Оценка:
Здравствуйте, T4r4sB, Вы писали:

TB>то есть всё тело макроса относится к одной дебаг локации

TB>Это значит, что я не могу поставить брекпоинт внутрь макроса в любое место.
Конечно не можете это же будет одна строка.

TB>Я при развороте тела макроса честно прописываю строку и колонну каждого токена. Но если макрос находится в другом файле, то отладчик итерируется по линиям и колоннам не того файла, в котором макрос, а того файла, который вызвал макрос. Потому что codeview (мне нужен именно он, так как мсвс) не позволяет задавать каждой инструкции свой файл.


TB>Если ли компилятор/отладчик, который позволяет ставить брекпоинты внутри макроса? И как выглядит его отладочная инфа?

TB>Как в том же D выглядит отладка кода, находящегося в сгенерированной строке?
Нету.
Но можно отлаживать не исходник, а то что выкатит препроцессор.
А еще лучше отформатировать апосля.

gcc -E hello.c
# 1 "hello.c"
# 1 "<built-in>"
# 1 "<command-line>"
# 31 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 32 "<command-line>" 2
# 1 "hello.c"
# 1 "hello.h" 1
extern"C" int f(int i);
# 2 "hello.c" 2

int main(int argc, char** argv)
{
  int x=f(f(f(f(42))));
  return x+5;
}

ps: поиск тут не работает но была тут как-то такая тема: отладчики не нужны
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.