At a breakpoint in this line:

294           instance_locked[instance] += 1;
295           locked_by[instance] = pthread_self();
296           locked_from[instance] = __builtin_return_address(0);

(gdb) p instance_locked[instance]
No symbol "instance" in current context.

Fortunately I happen to know that instance == 3, so I type

(gdb) p instance_locked[3]
Address of "instance_locked" is unknown.

Fortunately I know that this is "caused" by gdb not being
able to deal with namespaces very well... so I type:

(gdb) p 'libcw::debug::_private_::instance_locked'[3]
cannot subscript something of type `<data variable, no debug info>'

Ah, gdb ALSO doesn't know the type... so lets TELL it the type:

(gdb) p ((unsigned int*)&'libcw::debug::_private_::instance_locked')[3]
$4 = 1

This isn't the nicest way to debug though.

I wish someone would react to my first post here...
(with subject: Huge problems with debugging threaded C++ programs)
so we can make a start with fixing things like this.

-- 
Carlo Wood <[EMAIL PROTECTED]>

_______________________________________________
Bug-gdb mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-gdb

Reply via email to