Как написать простой отладчик?

Я хотел бы подключить Мой скомпилированный объектный код к коду C++, а затем проверить, была ли выполнена определенная строка кода. Как сделать эти две вещи?

Если объяснение не простое (я уверен, это не так), может кто-то хотя бы указать на некоторые веб-страницы, объясняющие, как это сделать?

Я понимаю, что решение отличается для разных платформ, но меня интересует как это делается на Windows и Linux (Linux для начала)

3 ответов


Если вы хотите знать, как это делается,

это хорошая статья использование 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, чтобы показать вам, что вы хотите.