Вы можете увидеть фактические значения.errmsg
- это 0x0, data
- это 0x1d254 и т. Д.То, что вы сейчас не видите, это сводка, которая обычно показывает вам содержимое объекта, на который указывает указатель.Иногда это происходит потому, что отладчик немного сбит с толку;иногда это потому, что переменные действительно находятся вне области видимости.Если у вас включена какая-либо оптимизация, компилятор может исключить указанную переменную.Одна подсказка здесь заключается в том, что оба значения data
и typename
имеют одно и то же значение, поэтому по крайней мере одно из них недопустимо на данный момент в коде.Чтобы увидеть объект, используйте консоль GDB.GDB имеет команду print-object
, сокращенно po
, что очень полезно:
> po data
сделает все возможное, чтобы вывести полезное значение.