The JIT debugger option in CVI 2010 is a nice step in the right direction, but only being able to debug builds that were compiled in "Debug" mode pretty much defeats the whole purpose of the idea. Debug builds are much too slow to be used in production and on my machines, if I ever use a Debug build, it probably already runs under the debugger anyway! Seeing that CVI is not even an optimizing compiler I cannot understand why release builds cannot be properly debugged.
Thing is, the crashes in production are the important ones that I absolutely need to be able to investigate, and CVI does not provide ANY assistance in this area apart from being able to at least generate a MAP file. This is what I currently have to do: I have included code in my application that creates a memory dump and sends it to me when the application crashes or hangs. This dump I can then load into WinDbg and with a few tricks I can at least import the CVI MAP file to get some functions names in the stack traces, but that's it, all investigations have to be done on the assembly level. To quickly decipher stack frames, e.g. to have a look at local variables, I often even have to throw my OWN code into a disassembler (IDA Pro)! I'm really glad that this way I am now at least able to debug most crashes at all, even when they happen far away in a different country, but this aren't the 80s anymore and you can probably imagine that this process is hard and time consuming and very much annyoing. With code compiled in VC on the other hand I can load a MiniDump and have a look at the stack trace, variables and code on the source level without much hassles.
Some ideas that could help:
- Let me (JIT) debug release builds
- Let me load MiniDumps into the debugger or
- create PDB files that I can use together with a debugger that can load MiniDumps (WinDbg, VS)
- Let me not only use an external compiler but also an external linker that generates PDB files for release builds (I don't like this solution as I use C99 features VC does not support, but I'm desperate here)
Okay, rant over for now, I think I really needed to vent a bit. Thanks for reading this far ;-)
All the best, Marcel
Data Tooltip should also display the name of the function, when displaying the value of a function pointer variable.
While debugging a CVI application, when hovering the mouse cursor over a function pointer variable, the Data Tooltip displays the address of that function, referenced by the variable.
It would be very useful in cases when you have multiple function pointer variables referencing several different variables, to have the Data Tooltip not only display the address of those functions, but the name of the functions as well.
Following this idea already implemented, it could be good to add up/down keys to rows and columns selectors.
At present, if the table is in hot or normal mode you can click on a cell in the table preview in the Quick Edit window to select the corresponding row/column: going to editing them is made easy this way. However, if the table is in indicator mode you cannot click on the cella to select row and column. The same applies if you want to reach a column/row out of visible area of the table: the only solution to that is to double click on the column or row selector and type in the number you want. Not easy nor fast, and prone to errors. Much better to click on a button and increment / decrement the active column index
I'm thinking to something like that:
As a result, starting CVI one first has to locate all the files, where did the include file go...? If you happen to have some more tabs this is a waste of time.
Also, as Roberto mentioned, you can not easily use the short cut keys Ctrl-1 etc. because of the changing assignment.
So, in short, I am asking to improve this behavior and maintain the tab order of CVI workspace files, that is, re-arrange/re-open the tabs in the order they were when CVI was closed.
It has been discussed a few times in the forum so it might be appropriate to also ask here for the implementation of a native polar plot, i.e. plot r versus theta, with radial grid lines and all the corresponding ingredients.
I noticed that LabVIEW has two ways to download instrument drivers: direct downloads from IDNET and through the NI Instrument Driver Finder.
[NI Instrument Driver Finder Menu Option Image]
[Alternative NI Instrument Driver Finder Menu Option Image]
When downloading drivers directly from IDNET, the file must first be unzipped and then placed in the <National Instruments>/labview xxxx/instr.lib folder.
The easier option when working with LabVIEW, the NI Instrument Driver Finder, downloads the files, unzips them, and instantly gives you access to example code or palette of VIs for communicating with said instrument.
If possible, could we add a similar tool to LabWindows CVI? It would be nice to have a menu option which would open a CVI Instrument Driver Finder.
The interface could then allow users to easily find a driver, download it to their Instruments Folder, see example code and start work.
Since probably 30% of all LabVIEW adoption comes from driver downloads and driver development, maybe this is an investment of resources worth looking into?
[Image of NI Instrument Driver Finder]
[Image of Instrument Driver Finder example code, project access, and palette access]
Over the years the look of CVI's control elements got closer to native Windows controls, e.g. by the direct use of native Windows controls such as the File Select Popup, which I would consider a welcome visual improvement.
What still is not available is a control element providing a Windows-like status bar, e.g. like the one of CVI's IDE.
I imagine a status bar which is similar to use as a menu bar, i.e. with a LoadStatusBar command, similar editing capabilities and the possibility to define the number and type of elements (text, image,...). Also the lower right part should resemble the typical Windows 'triangle', see figure below.
sometimes it woud be useful to have plot symbols available that are larger than the fixed standard size. Hence I suggest providing a plot attribute ATTR_TRACE_POINT_SIZE where one could set the point size (e.g. in pixels)
I would like to see an configuration of batchbuilt process. I have a big workspace with many projects; and would like to create different setups, like "compile only all server projects" or "compile all client projects". The workspace contains a big server-client -based software packages; some dll-projects used for server side only, some only client side.
Using CVI 2010 you can create different Custom Configurations
But I think that if a developer creates a new Custom Configuration (debug or release, x86 or x64), he wants to distribute it to a target machine. I don't create a Custom Configuration to have it run on my developer machine!
I've already asked to NI Support, and this can't be done in an automatic way.
So I suggest a new feature in the "Edit Installer" window to specify which Configuration (Default or Custom) to include into the installer (see attachments)
In the process of developing a function one typically has to change the number (and type) of parameters. This has to be done both for the function and the function declaration. Hence I would consider it useful to have an option 'Goto Declaration'.
Right now the IDE provides the right click menu 'Goto Definition', so if I change the declaration it is easy to jump to the function and adjust it accordingly. It would be nice if the reverse process would also be possible...
I want the batchbuilt window sizeable.
My cws consits of 51 projects, and the configurations-list is no longer useable. I just can see the project names, but not able to see the "release/debug/..." additional informations of the projects to be built. The list looks like
" c:/../../Task_AutomaticMeasurement.prj - D"
" c:/../../Task_FullAutomaticMeasurement ..."
following the discussion here I suggest to (more clearly) indicate the number of allocated rows and columns in the UI table editor.
I imagine something like
where the left number indicates (as now) the currently selected row, and the right number (11 in my quick example) indicates the number of all table rows.
The same might also be added for the number of total columns.
In the project window you can organize the project files into some "virtual" folders (Source Files, Include Files, ...)
If you right-click on the project name, you can add a folder with the item "Add Folder...".
If you right-click on one of these folders, you can add one or more files files.
But it's impossible to create a subfolder of one of these folders.
Every large project has a lot of files (sources, ini-files, images, icons, ...), so I think it's quite common having them saved into different "real" folders and subfolders. If you don't explicitly add these files to the project, you can add them to the distribution kit browsing your hard disk "real" folders, but in this situation the absolute path of the files is used. And if you move all your project from a PC to another one you won't be able to recreate the distribution kit without errors if you don't save the whole project to the same folder you use in the first PC.
And this is a really big problem.
For files explicitly added to the project, instead, the relative path is used, and this is OK, so the best situation is to add all the files in the project window.
So it's necessary create a full structure of virtual folders and subfolders.
It has been suggested earlier (here) to provide the LabVIEW feature of a display format 'SI notation' allowing to directly enter 100 kHz (instead of 100000 or 1e5)
When designing a new user interface it would be very helpful to have the ability to lock a control's position within a panel. It is far to easy to inadvertently select and move a control that you have already spent time precisely positioning within a panel.
In CVI 2013 the array display has changed (for the worse, in my opinion).
There are two minor inconveniences and one acute shortage I would like to see improved (hopefully prior to CVI2020 )
First, the right click context menu: If I want to see values of a numerical array, it offers a 'Graphical Array View' but no 'Array View', so one first has to chose 'View Variable Value' and then 'Array Display' - maybe one could save one step and already provide the 'Array Display' in the first case...?
Second, the new Array View table still is very slow, not extremely slow as prior to SP1 but still very slow...
Most importantly, at present it is impossible to debug large arrays, large meaning arrays with more than 10000 elements. The current implementation requires to select a slice of data - but this makes it impossible to check or compare say array indices 5, 10005, and 20005...
Of course I agree that there is no need to simultaneously see more than 10000 data values - but why not have a table with say 100 rows that can be turned over, e.g. displaying either elements 1-100, 101-200, ... this way one could access and inspect all array values...
Note: the LabWindows/CVI Idea Exchange is not the appropriate forum to submit technical support questions.
The LabWindows/CVI R&D team is committed to reviewing every idea submitted via the LabWindows/CVI Idea Exchange. However, we cannot guarantee the implementation of any LabWindows/CVI Idea Exchange submission.