在GDB中设置手表对我不起作用
我在gdb中使用在GDB中设置手表对我不起作用,gdb,watch,Gdb,Watch,我在gdb中使用watch时遇到问题。我正在努力保持一个良好的状态 注意我的代码中的变量m。但出于某种原因,我得到了以下信息 当前上下文中没有符号m。我在第7行保留了一个断点,以便知道m的范围 steps performed by me :- 1>g++ -g a.cpp 2>gdb a.out 3>(gdb)break 7 4>(gdb)watch m 以下是我的计划:- # include<iostream>
watch
时遇到问题。我正在努力保持一个良好的状态
注意我的代码中的变量m
。但出于某种原因,我得到了以下信息
当前上下文中没有符号m
。我在第7行保留了一个断点,以便知道m的范围
steps performed by me :-
1>g++ -g a.cpp
2>gdb a.out
3>(gdb)break 7
4>(gdb)watch m
以下是我的计划:-
# include<iostream>
# include<stdio.h>
using namespace std;
int main()
{
int m=10;
char *abc = (char *)"ritesh";
cout << abc << endl ;
m=11;
m=13;
abc=NULL;
cout << *abc <<endl;
return 0;
}
#包括
#包括
使用名称空间std;
int main()
{
int m=10;
char*abc=(char*)“ritesh”;
cout当您将程序加载到调试器中时,它尚未运行。但是,您尝试观察一个符号,它将开始在函数--main()
function中“活动”,并在您从函数返回时“消失”
例如,在这段代码中
void func() {
int b = 1;
++b;
cout << b << endl;
}
int main() {
int a = 1;
func();
cout << a << endl;
}
void func(){
int b=1;
++b;
那么,我应该像(mdb)run那样运行它吗?我应该在什么时候执行它?是的,1)break
7;2)run
(调试器在main中停止);3)watch m
;4)cont
(调试器将在m=11
之后停止)我在break语句之后运行了程序,并一直监视变量,非常感谢
void func() {
int b = 1;
++b;
cout << b << endl;
}
int main() {
int a = 1;
func();
cout << a << endl;
}