У меня проблема при использовании watch
в gdb. Я пытаюсь сохранить часы по переменной m
в моем коде. Но по некоторым причинам я получаю следующее сообщение no symbol m in current context
. Я сохранил точку разрыва в строке 7, так что область видимости m известна.установка Watch in GDB не работает для меня
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;
}
Я также видел How can I use "watch" GDB? Но это не помогло мне много. Может кто-нибудь объяснить эту проблему я facing.Below является информацией, связанной с моей GNU
[email protected]:~$ gdb a.out
GNU gdb (Ubuntu/Linaro 7.3-0ubuntu2) 7.3-2011.08
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-linux-gnu".
For bug reporting instructions, please see:
<http://bugs.launchpad.net/gdb-linaro/>...
Reading symbols from /home/ritesh/a.out...done.
Должен ли я запускать его, как (mdb), и когда его следует выполнять? – Invictus
да, 1) 'break' 7; 2) 'run' (отладчик останавливается в основном); 3) 'watch m'; 4) 'cont' (отладчик остановится после' m = 11') – pwes
Сделано, я запустил программу после фразы и сохранил часы для переменной, и она была успешной благодаря большому – Invictus