[comp.lang.c++] Question: Does C++ work with dbx and ctags?

cwc@daisy.UUCP (C.W. Chung) (05/15/88)

I have no hand-on experience with C++, but I am sort of
convinced that C++ is a better C for its stronger type
checking and object-oriented features.  However, I do
have two concerns in jumping to C++ at this moment:

1. Is there any dbx (or similar source-level debugger)
   that understands C++?  Or do we have to debug the
   C output from the C++ interpreter?  How do we debug
   C++ program in the absence of a good source-level
   debugger ?   Any ways better than printf()?  

2. I understand that you can have functions having identical
   names if they belong to different classes.  Is there any
   way to make ctags happy?  Ctags would complain about the
   duplicate names and ignore the duplicate functions.
   Without unique name to each functions, how could I use one
   of the most useful features of vi, tag, to navigate the
   sourcs codes of a big program?

   Any hints or insight would be greatly appreciated.

	-cwc-
-- 
{cbosgd,fortune,hplabs,seismo!ihnp4,ucbvax!hpda}!nsc!daisy!cwc     Chi-Wo Chung
Daisy System Corp, 700 Middlefield Road, Mountain View CA 94039. (415)960-6976

shopiro@alice.UUCP (05/15/88)

In article <1158@daisy.UUCP>, cwc@daisy.UUCP writes:
> I have no hand-on experience with C++, but I am sort of
> convinced that C++ is a better C for its stronger type
> checking and object-oriented features.  However, I do
> have two concerns in jumping to C++ at this moment:
> 
> 1. Is there any dbx (or similar source-level debugger)
>    that understands C++?
I regularly use dbx to debug C++ programs.  Setting breakpoints on line
numbers works fine.  In order to set breakpoints on functions, or inspect
the values of variables, you need to know the ``mangled'' version of
the name you want to reference.  I use nm to generate a namelist of the
a.out, and keep it in another window so I can paste the names into the
debugging session.  This is much easier than figuring out what the name
should be and typing in your guesses.  I also use the ``dump'' and
``whatis'' commands of dbx to find names of automatic variables and
structure members.  A feature of the compiler that makes debugging
easier is the ``+d'' switch which inhibits inline function expansion,
so that breakpoints can be inserted in such functions.  (Try that with
a macro :-)).

>   Or do we have to debug the C output from the C++ translator?
I never look at the generated C code for this purpose.  This corresponds
to looking at the assembly code generated by the C compiler.

>   How do we debug C++ program in the absence of a good source-level
>    debugger ?   Any ways better than printf()?
See above, but don't disparage printf().  The next version of C++ will
have a canonical ``demangler'' that can be incorporated into future
debuggers.
-- 
		Jonathan Shopiro
		AT&T Bell Laboratories, Murray Hill, NJ  07974
		research!shopiro   (201) 582-4179