2010-03-23 4 views
13

Возможно ли, когда отладчик остановлен в точке останова, чтобы изменить значение переменной std :: string, не прибегая к хакам, например, для настройки образа памяти текущего буфера?Установка значения std :: string из gdb?

например. что-то вроде «установить уаг MyString =» привет мир»

ответ

20

Попробуйте это (проверено и работает для меня):

call mystring.assign("hello world") 

Ключ в том, что вместо модификации памяти напрямую, вы называете функции объекта, чтобы изменить его состояние. Так получилось, что std::basic_string имеет функцию-член, называемую assign, которая выполняет эту работу.

+1

Отлично! Это не только то, что мне нужно, это разъясняет мое мышление о том, как работает gdb. – Stabledog