Как написать простой отладчик?
Я хотел бы подключить Мой скомпилированный объектный код к коду C++, а затем проверить, была ли выполнена определенная строка кода. Как сделать эти две вещи?
Если объяснение не простое (я уверен, это не так), может кто-то хотя бы указать на некоторые веб-страницы, объясняющие, как это сделать?
Я понимаю, что решение отличается для разных платформ, но меня интересует как это делается на Windows и Linux (Linux для начала)
3 ответов
Если вы хотите знать, как это делается,
- gdb с открытым исходным кодом
- на
ptrace
syscall вы должны начать, - libunwind-ptrace
это хорошая статья использование ptrace
Я подозреваю, что вам действительно не нужен отладчик, а профилировщик. Мне нравится callgrind в http://valgrind.org/docs/manual/cl-manual.html, который имеет хорошую графическую среду в http://kcachegrind.sourceforge.net/.
чтобы попробовать, я бы использовал
$ valgrind --tool=callgrind ./myapp
$ kcachegrind callgrind.out.xxx
в вашем комментарии вы говорите: "Я просто хотел бы собрать информацию о том, как проверить, какие методы/функции выполняются во время выполнения, и сколько раз".
Если это то, чего вы хотите достичь, используйте профилировщик, такой как gprof.
скомпилируйте свою программу с помощью-g-pg, и когда ваша программа закончит, она создаст файл, который может быть обработан gprof, чтобы показать вам, что вы хотите.