Title: | Digital Ladebug debugger |
Moderator: | TLE::LUCIA |
Created: | Fri Feb 28 1992 |
Last Modified: | Fri Jun 06 1997 |
Last Successful Update: | Fri Jun 06 1997 |
Number of topics: | 969 |
Total number of notes: | 3959 |
DEC C++ V5.5-004, ladebug 4.0-30: This program will produce a bad reference when attempting to view a variable. Step into b(). When in b(), try printing out one. You'll get the message "<bad reference>" Note that if you remove the initialization of the variable "two", the problem goes away. - Matt ------------------- struct A_tag { int a_member; }; static A_tag* get_tag(A_tag& var) { return 0; } static void b(A_tag& var) { A_tag& one = var; A_tag* two = get_tag(var); } main() { A_tag var; b(var); return 0; } -------------------- Welcome to the Ladebug Debugger Version 4.0-30 ------------------ object file name: a.out Reading symbolic information ...done (ladebug) stop in b [#1: stop in void b(A_tag&) ] (ladebug) run [1] stopped at [void b(A_tag&):12 0x120002124] 12 A_tag& one = var; (ladebug) print one <bad reference> (ladebug) - Matt
T.R | Title | User | Personal Name | Date | Lines |
---|---|---|---|---|---|
850.1 | TLE::MURRAY | Wanfang Murray | Mon Feb 24 1997 07:26 | 5 | |
Stephen will take a look at this. Wanfang | |||||
850.2 | motivation | CAIRN::HARRIS | Kevin Harris, dtn 381-2039 | Thu Mar 06 1997 14:42 | 7 |
This one bit me today. With reference parameters and reference variables. We use reference arguments and variables heavily in the Middle End of the EDG based C++ compilers, so we will continue to have this problem until it is fixed in ladebug. I discovered that I could get the necessary variable value by examining non-reference variables higher up in the call stack, so we don't need an additional workaround. -Kevin | |||||
850.3 | TLE::BRETT | Wed May 28 1997 15:28 | 1 | ||
fixed |