在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>

我在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>
    # 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;
}