Я попытался подключиться к другим командам, таким как эхо, и он работает хорошо. Но когда дело доходит до подключения команды x, она терпит неудачу. Вот коды внутри моего файла .gdbinit.Как я могу подключиться к команде x в gdb?
set $pince_injection_failed = 1
set $pince_debugging_mode = 0
define hook-x
if $pince_injection_failed = 1
echo asdf
end
define hookpost-x
if $pince_debugging_mode = 0
echo zxcv
end
Я знаю, что gdb не принимает псевдонимы функции для подключения. Но x уже является полной функцией, не так ли? Я не мог найти никаких псевдонимов. Я также сомневаюсь в этом, потому что один символ слишком короткий, чтобы команда была
'крючками x' и' hookpost-x' работа для меня в БГД 7.7.1. С какой версией вы столкнулись с этой проблемой? Это может быть ошибка в старых версиях, которые были исправлены. Также обратите внимание, что 'if $ pince_debugging_mode = 0' всегда будет false; вы, вероятно, хотите 'if $ pince_debugging_mode == 0'. Отсутствие оператора 'end' для прекращения' if' также может привести к тому, что команда не будет работать. –
Моя версия 7.7.1. Я просто попытался выполнить 'define hook-x' в сеансе gdb вместо использования файла .gdbinit, и он работает! Что может быть неправильным с файлом .gdbinit? Edit: Ой, а также спасибо за заявление, если кончик Edit2: Я пытался написать минималистичный версию gdbinit так: 'определить Крюк-х эхо 1 end' И это также не работает – Desertricker
Can вы добавляете команду 'echo' в качестве первой строки и последней строки вашего файла .gdbinit, чтобы проверить, читает ли ее gdb? –