У меня есть полный исходный код на C ++ на Windows. Есть ли какая-либо утилита, которая может сказать о каждой функции — в каком файле она была определена / объявлена и каков номер начальной и конечной строки для этой функции?
Я не знаю ни одной утилиты из головы (хотя у меня такое ощущение, что windbg или какой-нибудь отладчик могли бы перечислять символы так, как вы хотите, см. x ntdll!*
а также .lines
команда http://windbg.info/doc/1-common-cmds.html), что сделало бы это из коробки, но, возможно, это было бы просто — написать что-то, что ближе к вашим требованиям. Так как вы находитесь на земле C ++, возможно, вы не безмятежны в такой вещи. Я предполагаю, что вы скомпилируете отладочную версию вашего исходного кода, и в этом случае pdb должен содержать достаточно богатую информацию, включая точные номера строк.
Учитывая этот файл pdb, вы можете извлечь информацию из него, используя DIA SDK. Вы хотите перечислить символы и посмотреть на функции.
Больше по теме:
Я не знаю, насколько сложно получить номер конечной строки, но в худшем случае вы можете оценить это от ближайшего номера начальной строки до функции.
Других решений пока нет …