Ответ 1
Хорошо, если у вас есть адрес, который вы всегда можете сделать:
print *(class MyClass*)pointer_var
Я изучаю сбой, основанный на доступном дампе ядра. Сбой приложения - это программа на С++, построенная с помощью gcc и работающая на RH5. Обратный ход кажется действительным до кадра №1. Там, пытаясь напечатать объект, который я получаю <invalid address>, <error reading variable>
Так как у меня есть адрес объекта из фрейма # 2, это допустимая презумпция, что я могу как-то "выгрузить" память, в которой объект выделен, и все еще собирать некоторую информацию. Кроме того, вместо того, чтобы угадывать, как выравнивается объект, могу ли я заставить gdb печатать адрес так, как если бы он был объектом, хотя он обнаружил некоторую ошибку. Моя идея состоит в том, что, возможно, объект уже удален, но, возможно, память все еще существует, и я могу напечатать некоторую переменную-член.
Прокомментируйте это, возможно, и если да, то как это должно быть сделано в терминах gdb. 10x.
Хорошо, если у вас есть адрес, который вы всегда можете сделать:
print *(class MyClass*)pointer_var