2011-03-31 3 views

ответ

0

в GdB строке (если вы получили символы отладки включена при компиляции)

print realpath(path.c_str(),realPath) 

будет выводить результат, очень изящный.

+0

, но будьте осторожны с этим решением. Функция снова оценивается, поэтому, если она имеет какие-либо побочные эффекты, это повредит ваш сеанс отладки. Лучшим решением было бы войти в функцию, выполнить до тех пор, пока она не вернется и не проверит возвращаемое значение – flolo

+0

правду о побочном эффекте, это то же самое, что если вы запустите эту строку кода – hhafez

+0

** дисплей ** также выполнит эту работу. – karlphillip

0

Если у вас есть указатель памяти, лежащий на вашем коде, вы можете использовать GDB для выделения для него нового пространства памяти и использовать его для хранения результата выражения, которое вы хотите оценить.

Проверьте, пожалуйста, this page.

(gdb) set variable p = malloc(sizeof(int)) 

(gdb) print p 
$2 = (int *) 0x40013f98 (address allocated by malloc) 

(gdb) set variable *p = 255 

(gdb) print *p 
$3 = 255 
Смежные вопросы