Узнать на какой именно строчке кода завершилась программа

144
11 марта 2018, 23:40

Как можно создать отладочный модуль , явно записывающий в лог , на какой именно строчке завершилось приложение ? C++ или Qt

Answer 1

Логи для этого не лучшее решение. В среднем или крупном проекте слишком много писать придется, и производительность просядет заметно, запись в файл не дешевая операция.

Для этого лучше подойдут т.н. крешдампы (crashdump). Крешдапм это по сути по-байтовая запись всей памяти и стека в момент падения. Сам файл дампа создается либо самой программой если она смогла обработать падение, либо специальной монитор-службой (лучший вариант) которая должна быть настроена и запущена в системе. После получения крашдампа его можно загрузить в отладчике и не только посмотреть в каком месте произошло падение но и увидеть стек со значениями всех переменных. В общем все так же как и при обычной отладке.

Подробнее как работать с дампами на Виндоуз (анг.)

READ ALSO
Будет ли в данном случае повторное копирование объекта на стеке?

Будет ли в данном случае повторное копирование объекта на стеке?

Будет ли в данном случае повторное копирование объекта на стеке?

135
Разница в приведении типов (int) a и int (a)

Разница в приведении типов (int) a и int (a)

Есть ли какая-то принципиальная/важная разница между приведением типов:

147
запросить из /dev/urandom

запросить из /dev/urandom

Как получить беззнаковый 1 байт, знаковый 1 байт? Как получить singned long long и unsigned long longнужно ли запрашивать по 1 байту и "докладывать"?

131
можно ли тело конструктора вынести за пределы прототипа класса подобно функции?

можно ли тело конструктора вынести за пределы прототипа класса подобно функции?

Имеется довольно большой конструктор и хочется его вынести за пределы определения класса оставив только прототип, подобно функции, но как...

175