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 |
Sorry -- I've found more problems with the new single-class approach: Using shared objects with ladebug 4.0-33 and C++ V5.6-121, you cannot type "print b.mf2()" while in main() -- ladebug gives the error "No class object...". Note that the problem goes away when you compile non-shared. The commands to use are: cxx -g -O0 -shared -rpath . -o x_0041a.so x_0041a.cxx cxx -g -O0 x_0041a.so x_0041b.cxx ladebug a.out stop in main ; run ; p b.mf2() The sources are: ------------------------- // x_0041.h #include "stdio.h" extern int counter; typedef class BASE { public: int bi; /*ctr*/ BASE() : bi(counter++) {} void mf1(); void mf2(); } *BASE_ptr; ------------------------ // x_0041a.cxx #include "x_0041.h" static int i = (counter=101); // reset counter void BASE::mf1() { printf("BASE::mf1\n"); mf2(); } ------------------------ #include "x_0041.h" int counter; static int i = (counter=1); // reset counter BASE b; void BASE::mf2() { printf("BASE::mf2\n"); } int main() { b.mf1(); return 0; } ------------------------ The output from ladebug: Welcome to the Ladebug Debugger Version 4.0-33 ------------------ object file name: a.out Reading symbolic information ...done (ladebug) stop in main ; run ; p b.mf2() [#1: stop in int main(void) ] [1] stopped at [int main(void):14 0x120001cd8] 14 b.mf1(); No class object for member function call which requires one Error: no value for b.mf2() - Matt
T.R | Title | User | Personal Name | Date | Lines |
---|---|---|---|---|---|
892.1 | Being looked at.... | TLE::MERRITT | Steve Merritt, Ladebug Team | Mon Mar 24 1997 09:55 | 5 |
This is being looked at now. -Steve | |||||
892.2 | Fixed | TLE::MERRITT | Steve Merritt, Ladebug Team | Fri Apr 18 1997 14:31 | 22 |
This is fixed in 4.0-36 alime.zko.dec.com> cxx -g -O0 -shared -rpath . -o x_0041a.so x_0041a.cxx ld: Warning: Unresolved: counter BASE::mf2(void) alime.zko.dec.com> cxx -g -O0 x_0041a.so x_0041b.cxx -o 0041 alime.zko.dec.com> $V40P/ladebug 0041 Welcome to the Ladebug Debugger Version 4.0-36 ------------------ object file name: 0041 Reading symbolic information ...done (ladebug) stop in main [#1: stop in int main(void) ] (ladebug) run [1] stopped at [int main(void):13 0x120002508] 13 b.mf1(); (ladebug) print b.mf2() BASE::mf2 void |