генерировать разрыв GDB Valgrind из пользовательского инструмента - PullRequest
0 голосов
/ 12 мая 2018

Я написал собственный инструмент valgrind. При подключенном gdb (-vgdb = yes) я хочу отключить gdb при обнаружении определенного условия выполнения. Есть ли пример, как это сделать?

Ответы [ 3 ]

0 голосов
/ 12 мая 2018

Оказалось, что

 VG_(gdbserver)( VG_(get_running_tid)() );

делает свое дело. Он войдет в удаленную целевую петлю.

0 голосов
/ 12 мая 2018

API, доступный инструментам, все описано во включаемых файлах. находится в каталоге include в верхней части valgrind иерархия. Включаемые файлы называются pub_tool_xxxxxxxxx.h.

В вашем конкретном случае, файл, который дает доступ к gdbserver функциональность - pub_tool_gdbserver.h, который a.o. описывает extern void VG_ (gdbserver) (ThreadId tid);

0 голосов
/ 12 мая 2018

Есть ли пример, как это сделать?

Я уверен, что есть: в конце концов, Valgrind делает это сам, когда находит ошибку. Так что все, что вам нужно сделать, это посмотреть, как это происходит.

Похоже, coregrind / m_gdbserver / m_gdbserver.c call_gdbserver и helperc_CallDebugger должно быть хорошим началом.

...