Я довольно новичок в GDB, и я еще не нашел подобный вопрос, и мой поиск в Google был напрасным, так что здесь.
Я подключаюсь к удаленной плате на основе PowerPC через COM-порт, используя GDB, и я достиг точки останова. Вот мой (очень отредактированный) сеанс GDB.
(gdb) where
#0 WaitForStuff () at graphfile.c:1234
#1 0x00012af4 in WaitForOtherStuff () at graph.c:2345
#2 0x001d0a7c in DrawScreens (DefaultScreenFct=0x2bef02 <DefaultFct>,
SecondScreenFct=0x2bef02 <DefaultFct>, DrawBothPages=Variable "DrawBothPages"
is not available.
[...]
(gdb)
Вот объявление функции в кадре № 2:
void DrawScreens(void (*DefaultScreenFct)(void), void (*SecondScreenFct)(void),
const BOOLEAN DrawBothPages);
Вот где я потерялся: почему эта переменная «недоступна» и как я могу сделать ее «доступной»? Я скомпилировал программу, используя GCC с ключом -g3, на всякий случай, если мне нужно больше информации, но я получаю ту же ошибку. Я также убрал флаг -O, который мы использовали. Может ли это быть BOOLEAN
typedef (просто unsigned char
)? Или, возможно, const
Несс параметра? Мне кажется странным, что GDB даже не дал мне адрес, на который я мог бы взглянуть.
Спасибо!