我正在尝试调试C程序,但在尝试打印数组内容时遇到以下问题 .
我在c程序中声明了一系列字符
using namespace std;
int main() {
string s;
cin >> s;
char d[s.size()];
int i=0;
int j=0;
while(j<s.size()) {
if(s[j] != '+') {
d[i++] = s[j];
}
j++;
}
}
我使用以下命令编译上面的代码并运行gdb
g++ -g main.cpp -o main
gdb main
但是当我在GDB中调试并点击下面的命令时,我得到以下错误 .
Command entered in GDB : p *d@10
No symbol "d" in current context.
你能告诉我我能做什么,以便打印阵列的所有内容吗?
2 回答
在运行程序之前,没有要打印的变量 . 对于您的程序,您应该在
main
的最后一行设置一个断点,然后运行该程序 . 当程序在断点处停止时,您可以打印d
.确保关闭编译器优化 . This链接提供了更多细节 .