К сожалению, я не знаю, как перезапустить приложение и по-прежнему поддерживать ваш сеанс. Обходной путь - вернуть ПК к точке входа вашей программы. Вы можете сделать это, позвонив по телефону:
jump <em>function</em>
или
set $pc=<em>address</em>
.
Если вы спрятали аргументы в main
, возможно, вам придется установить их заново.
Edit:
Существует несколько предостережений с использованием вышеуказанного метода, которые могут вызвать проблемы.
- Если вы находитесь в многопоточной программе, переход к основному приведет к переходу текущего потока к основному, все остальные потоки останутся. Если текущий поток удерживал блокировку ... тогда у вас есть некоторые проблемы.
- Утечки памяти, если вы запрограммировали поток, выделяя некоторые вещи во время инициализации, то вы просто пропустили кучу памяти с помощью перехода.
- Открытые файлы по-прежнему остаются открытыми. Если вы отобразите некоторые файлы или адрес, вызов, скорее всего, не удастся.
Таким образом, использование jump - это не то же самое, что перезапуск программы.