Re: Style and navigation in project question(?)
Tom Tromey <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <[email protected]> |
>>>>> ">" == kuba <[email protected]> writes: >> I'm new in this project and for beginning I want to figure out how to fix >> this bug: https://sourceware.org/bugzilla/show_bug.cgi?id=23182 Hi. We talked on irc but I figured that a reply on the list would also be good for posterity. >> 1. Trying to figure out what function can make problems I jump into print >> and slowly go back. Reading code of those function I saw style problems >> like >> int x; >> ... >> if (x) ... >> or >> if(a==b) >> /* it's ok to be a and b equal*/ >> return a+b; >> Is better to not touch them or add !=0 or {} as said in style documents? >> (this one: >> https://sourceware.org/gdb/wiki/Internals%20GDB-Testsuite-Coding-Standards Normally existing code is just left as-is, unless you happen to be touching that line. Sometimes a reviewer might ask for a small change in the context, but (I think) normally not -- though reindenting something obviously wrong might be an exception. >> 2. Its so big and I feel a bit lost. I found those "print" by luck and >> guess. Is there any kind of map that can help me to find eg. actually >> function that look for Fortran array, and try to print it? Or what >> document I miss and should read? gdb is a reasonably sized program and so one has to learn to navigate it. It is regular in its own way but this is not always written down. Per-language code tends to be in files named after the language, so ada-lang.c or rust-exp.y. For Fortran the prefix is "f". Convention for most languages is that specialized printing code is in *-valprint, so for Fortran array printing you want to start with f-valprint.c. A language is defined by a structure in language.h. So you can also find most of the various callbacks by reading this structure and then searching for instances of the structure. This would take you to f-lang.c:f_language_defn, which has a pointer to f_val_print -- the primary entry point to Fortran value-printing. There are other navigation rules like this. Perhaps we could resurrect that part of the old internals manual, if there was such a part, on the wiki. >> 3. It should be first question, but em I ask those two above in right place? I don't understand this one, sorry, but you are welcome to ask questions here or on irc. Tom