анализ — покрытие кода c ++ при запуске только одной функции

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

test.cpp:

#include "..."
int main(){
init();
gcov_start_recording();
run();
gcov_end_recording();
return 0;
}

0

Решение

Невозможно получить информацию об исходном коде из обычного двоичного файла.
Моя основная идея:
1. Исполняемый файл должен соответствовать отладочной версии,
которые хранят информацию о символе.
2. Вам нужен внешний скрипт-обертка для GDB.

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

1

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector