[net.lang.c] dbx problems?

jdl@purdue.UUCP (Jon Loeliger) (06/23/86)

OK, dbx is really beginning to frustrate the bajeezuss out of me...

Here is the basic scenario:   I have a large binary in several source
files, each with their own .h files which define the principle structs,
variables and #define's.  The entire list of structs throughout the .h
files is recursive.  When I dbx the core file, I can check:

whatis pavAddr
whatis pavValue

In each case I correctly am told the full structure with the right names.
I can also do a 'whatis' on the structures, and pointers to structures
and get all the correct information.  Now, as I step through the code, I
end up in other source files. (Naturally, they include the necessary .h
files to declare the structures used...)  But only SOME of the variables
know what type they are!  Others are (class 0), and cannot be printed,
'whatis'ed.  It may be of interest to note that the values continue to
be handled correctly.  Ie, the pointers are returned and assigned properly.
(I can get in there and printf("%x") the pointers and watch them...)
Well, part of the problem then, is that I can't find the faulting code
due to dbx not printing stuctures, values etc... 
I also get !sizeof(bad use)!sizeof(bad use)! errors and then dbx occasionaly
goes belly up...  I notice that 'whatis' on some of the pointers to structures
within other structures are called "typedef struct av_ent (noname);"

My hunches:
Perhaps I don't have a clue how to declare structures that are mutually
recursive in multiple .h files and then #include them properly in such a
way that all the references are satisfied.  The fact that some of the
fields within a struct are "typedef"ed seems to tell me that they were
originally (pointer) references to structures not yet seen, that the
compiler is able to resolve later (when the next .h file is included), but
that dbx is not able to resolve...

Anybody venture an explaination or sympathy?

Jon Loeliger			Unfortunately, these problems are mine and
jdl@purdue.arpa			in no way can they be passed off on Purdue
jdl@mordred.cs.purdue.edu	or my employer...