Я пытаюсь написать трассировщик для любой программы на языке C, который отображает все вызываемые функции. Вот пример:
$./tracer toto.out
+ Entering main at 0x123456789
'I am in Toto's main'
+ Entering toto at 0x123456AAA
'I am in toto'
+ Entering...
Я пытался проверить содержимое командной строки после изменения значений argv, обновленные значения не отображаются:
#include
#include
#include
#include
#include
int main(int argc, char*argv[])
{
if (argc < 2) {
printf( Usage: %s arg1 arg2 .....
Я выполнил трассировку простого исполняемого файла, а затем попытался сопоставить записи в /proc/{pid}/maps с вызовами mmap. На ранних этапах выполнения двоичный файл загружает и отображает /etc/ld.so.cache. strace говорит, что это 0x7fa2bc468000,...