09-29-2009 01:13 PM
In the category of dumb questions, I can't figure out why CVI clears the source browser window after a compile.
Sure, the contents may need to be refreshed, but why not just re-draw what was showing before the compile instead of clearing it? I find myself continually pulling down the pick list for the file I had been viewing and re-selecting it.
This is one of those nits that nobody at NI will think matters much but which drives users nuts. Like the lack of a debug / release mode indicator on the tool bar.
Menchar
09-29-2009 03:40 PM
09-30-2009 11:14 AM
09-30-2009 11:26 AM
well, with the variable definition locator, I can see why it isn't available in the release mode - there's no symbol table in the release code so no way to look it up via the binary - no easy way for the IDE to do it as a source code search only - you need the compiler to figure this out, or if you coded the IDE to do it, you'd wind up with half of the compiler 😉
The tool also needs to then map from the symbol definition established by the compiler to source code - and those hooks aren't there in release mode either. Optimization can goof up simple source line to binary mapping too, though the CVI native compiler doesn't do much optimizing in release mode.
Visual Studio I think has an ability to optionally include the symbol table with a release mode binary to aid in debugging. Maybe "symbol table" is Microsoft's euphemism for "debugable binary".
Menchar
09-30-2009 02:00 PM
i am not sure we are talking about the same thing: in my case, when the configuration is set to "release mode", when editing my source code, i want to be able to right click on a variable name and select "go to definition" to see where it is located.
when the compiler is compiling source files, it has to parse them, whether it is in debug or release mode. while parsing, it can build a symbol table (it already does so in order to use the right symbol when generating machine code) and save it in a file separate from the output binary, then make it available for source browsing.
(by the way, if this was done correctly, it could jump right to the definition, without asking to resolve any conflict, since it knows which definition was used while compiling)