Hi,
I think I have found a bug in GDB 5.0.
GDB seems to have problems with a sequence like:
try {/*...*/}
catch(/*...*/) {/*...*/}
if(/*...*/) {/*...*/}
It does not recognize any variable in the if-block.
I'm using SuSE Linux 7.1 with Kernel 2.2.18 on a x86 PC.
As installed the gdb package from the SuSE distribution I don't know what
compiler was used to compile GDB.
I compiled the following source using gcc-2.95.2:
g++ -g gdbtest.cpp
If you set a breakpoint in the if-block after the line
int x = 123;
and type "print x" gdb says:
No symbol "x" in current context.
If you type "info locals" gdb says:
__exception_info = (cp_eh_info *) 0x7b
a = 1
c = 123
but nothing about x.
--------------------------gdbtest.cpp--------------------------------
#include <iostream>
int main()
{
int a = 2;
cout << "a = " << a << endl;
try
{
a = 1;
}
catch(...)
{
cout << "exception" << endl;
return -1;
}
if(true)
{
int x=123;
cout << "a = " << a << endl;
cout << "x = " << x << endl;
}
int c = 1;
cout << "a = " << a << endl;
cout << "c = " << c << endl;
return 0;
}
---------------------------------------------------------------------
If this is an already well-known bug or I did something wrong I'm sorry as
I'm quite new to gdb.
But I didn't find any information about this.
Jan
_______________________________________________
Bug-gdb mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-gdb