Вывод ошибок включает последние пару строк кода

Возможно ли это, и если да, то как бы вы сделали вывод ошибок, включающий последние пару строк кода? Я знаю о поддержке GNU g ++ для __LINE__ а также __FUNC__ но они дают только номер строки в виде целого числа и имя функции в виде строки — я хотел бы вывести функцию, код которой не удался, или хотя бы последние несколько команд, выполненных программой.

Я подумал, может быть, написать сценарий m4, который будет анализировать основную часть кода и вставлять строковые структуры функций, в которые они помещены (исключая себя, конечно).

Любые другие / лучшие идеи?

1

Решение

Не меняйте свой код вообще. использование __LINE__ а также __FUNC__ и постобработка вывода ошибок. То есть, запустите вашу программу как my-prog > $(tty) 2>&1 | post-process где post-process имеет доступ к вашей кодовой базе и может генерировать нужный текст. Возможно, вы захотите немного изменить код, добавив теги, чтобы облегчить постобработке поиск имени функции и номера строки.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]