From: Steffen F. Haeussermann (shaeu_at_worldnet.att.net)
Date: Tue Nov 02 1999 - 03:57:52 GMT
Hello, I found several bugs in the 3.34 release during debugging sessions with C++ code (C is fine). I do use Solaris releases 2.51, 2.6 and 2.7 with the compilers GCC and Sun 4.2. C++ step function is extremely slow. For each step the method elf_next_symtab is called around 5000 times and the shared libraries are opened to check the modification time. This problem does not occur under C. The removeal of the comments at line 764-772 will fix the problem. However, I guess the idea is here to change a shared library during debugging session. This is no longer possible after the below listed changes have been applied. FILE: ao_elflib.c Line 764-772 /* RGA commented out to get load of dynamic libraries added into latest_libdep */ /**/ if (so->next != NULL) { *p_next_st = so->next->symtab; return TRUE; }/**/ /* RGA commented out to get load of dynamic libraries added into latest_libdep */ /**/ if (!load_new || so->is_last_symtab) return FALSE;/**/ The step function does not step into any methods of sub classes in the case the SUN 4.2 compiler has been used (constructor, overloaded or not). The method scan_symtab does ignore the sub class methods in the "case N_FUN" section. The "ifdef SUNOS" preprocessor statement does fix the problem: FILE: ao_symscan.c Line 1442-1448 #ifndef OS_SUNOS <== ADD THIS LINE if ((curfunc != NULL) && (curfunc->fu_addr == nm.n_value)) { stf->stf_flags |= STF_FUNCS_REPEATED; break; } #endif <== ADD THIS LINE Variables which have been declared protected or public will not be displayed in the case the variable is selected in the code of a sub class. The below listed changes in the method match_name_start_in_obj will fix the problem. FILE: va_menu.c Line 1603 (change line to this) if (!found) /* go one level up */ Line 1605 (change line to this) if ( (v->va_type->ty_code == TY_UNION || v->va_type->ty_code == TY_STRUCT) && Regards, Steffen
This archive was generated by hypermail 2.1.4 : Wed Feb 13 2002 - 21:56:15 GMT