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...