![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Процессы приложений [D6, WinXP]
Elen © (2006-04-14 11:57:00)Господа! Есть ли возможность получить список функций и процедур и их адреса, которые использует указанный загруженный процесс?
Сергей М. (2006-04-14 15:10:00) [21]
> Elen © (14.04.06 15:03) [12]
Какие нафих "релоки" при вызове п/п а-ля call [SomeCommonUsageRegister] ?)
Игорь Шевченко (2006-04-14 15:10:00) [22]Сергей М. © (14.04.06 15:08) [13]
> Не лезь в дебри.
Мне можно.
Elen © (14.04.06 15:03) [12]
> , и вроде есть какая-то карта памяти процесса, где описаны
> вызовы и релоки.
Есть. Называется таблица импорта. Но прежде чем давать какой-то совет, ты скажи, нафига тебе это надо ?
Сергей М. (2006-04-14 15:08:00) [23]
> Игорь Шевченко © (14.04.06 14:55) [11]
Не лезь в дебри.
лучше направь автора на путь истинный. Дабы хотя бы в терминологии у нее в голове прояснилось.
Elen (2006-04-14 15:03:00) [24]Но все же например Depender из Visual Studio показывает связи процесса с подпрограммами, и вроде есть какая-то карта памяти процесса, где описаны вызовы и релоки. Знает ли кто-нибудь о ее существовании? Если знает то поподробнее пожалуйста.
Игорь Шевченко (2006-04-14 14:55:00) [25]Сергей М. © (14.04.06 14:00) [10]
А что, много компиляторов генерирует такие вызовы процедур ? Я не уверен, что справится, скорее всего, не справится, но см. начало поста.
Сергей М. (2006-04-14 14:00:00) [26]
> Игорь Шевченко © (14.04.06 13:29) [9]
Тот самый "любой профилировщик с поддерживаемой опцией" справится с задачей отслеживания вызовов вида
push адрес_возврата
jmp точка_входа
?
Игорь Шевченко (2006-04-14 13:29:00) [27]Сергей М. © (14.04.06 13:27) [8]
> Просто "функций и процедур" - и все тут... И бессилен тут
> Неббет ..
В таком случае сгодится любой профилировщик с поддерживаемой опцией Coverage analysis.
Сергей М. (2006-04-14 13:27:00) [28]
> Игорь Шевченко © (14.04.06 13:23) [7]
Про именно импортируемыеп/программы у автора ни слова в вопросе.
Просто "функций и процедур" - и все тут... И бессилен тут Неббет ..
Игорь Шевченко (2006-04-14 13:23:00) [29]Сергей М. © (14.04.06 13:02) [6]
Так Неббет как раз на эти вызовы ставит Breakpoints и по анализу их срабатывания определяет, что вызывалось, а что нет.
Сергей М. (2006-04-14 13:02:00) [30]
> Игорь Шевченко © (14.04.06 12:55) [5]
При неких условиях в некий момент некая п/программа Х вызывается, а при неких иных условиях она же ни разу не вызывается.
Можно ли считать, что п/программа Х "используется" процессом приложения ?
Судя по абстрактному пояснению "в ходе работы" (см. [3]) - нельзя.
Игорь Шевченко (2006-04-14 12:55:00) [31]
> Есть ли возможность получить список функций и процедур и
> их адреса, которые использует указанный загруженный процесс?
>
Да, через отладчик. Для импортируемых процедур. У Гэри Неббета пример есть. Неббета можно найти в тырнете.
Сергей М. (2006-04-14 12:38:00) [32]
> вызывает в ходе работы
Увы, нет такой возможности.
Факт хотя бы однократного вызова той или иной п/программы определяется логикой закодированного в ней алгоритма, но отнюдь не фактом присутствия в коде приложения кода той или иной п/программы.
Elen (2006-04-14 12:29:00) [33]Использует - значит вызывает в ходе работы. Декомпилоровать кстати нет возможности. Определять должна программа
vodvorezlaya (2006-04-14 12:15:00) [34]Взять исходник процесса, декомпилировать )))
Сергей М. (2006-04-14 12:07:00) [35]Что значит "использует" ? Поясни ..