NI Home
Cart Cart | Help
Hello Events Academic NI Developer Zone Support Solutions Products & Services Contact NI MyNI
You are here: 
NI Home > NI Developer Zone > NI Discussion Forums


LabWindows/CVI Idea Exchange

Announcements
The NI Idea Exchange is a product feedback forum where NI R&D and users work together to submit ideas, collaborate on their development, and vote for the ones they like best. View all of the NI Idea Exchanges to post an idea or add your opinion on an existing one today!
New Idea
Wolfgang

Better UI debugging: provide constant names

Status: New
by Active Participant Wolfgang on ‎01-08-2013 02:39 AM

Hello,

 

I don't know if it is possible technically but from a user's perspective it would be convenient for debugging a program (in debug configuration) if the UI constants could be provided in the data tooltips, too. Right now, if something is wrong with my UI I will have to do a lot of detective work to find out which control / control attribute is the problematic one...

 

Example: Consider the code

 

SetCtrlAttribute ( panel_handle, control_id, control_attribute, attribute_value );

 

Right now, if I hover over attribute_value, the tooltip will display something like "attribute_value = 24064". Then I will need to look up userint.h to find out which attribute value this is ( ATTR_CTRL_VAL ). It would be more convenient if the tooltip could include this information, too, and display something like "attribute_value = 24064 ( ATTR_CTRL_VAL )"

 

The same holds for control_id, because a number such as 14 will not immediately help me - I will have to go through the corresponding include file to find the respective UI control (e.g. TABPANEL_2_NUMERIC ).

 

 

Wolfgang

Provide clang updates on a (bi)annual schedule

Status: New
by Active Participant Wolfgang on ‎01-22-2012 07:19 AM

It was a nice surprise when CVI provided clang as an external optimizing compiler. In the meantime, however, the initial clang version 1.0 has been significantly improved and now is at version 3.0 - but not for CVI users...

 

I would suggest that NI provides a current Windows binary of the compiler for everyone with a legal copy of CVI2010 or later. As the release cycles of CVI are quite long it would be convenient to obtain, on a biannual interval, interim updates of clang.

 

 

Spoiler

On a side note, this also would provide some motivation to keep/renew the SSP. Right now I consider it disappointing if the equivalent of several hundred Euros is a patch of CVI only. Other major companies such as Autodesk or Microsoft provide patches free of charge...

 

Hello,

 

  • Right now, the Break on»Library Errors function break happens for all library errors. I would like to suggest a more granular setting, i.e. break on file I/O errors, math errors, etc.

 

  • An additional (and most relevant) feature I suggest is the option to allow to temporarily exclude certain errors; let's say I have a loop doing some calculations and these calculations result in an ERANGE error, then it would be useful to get notified by the debugger, but only once for this loop, not 500 times... Hence after a break on library error I would like to have the (right click) option 'exclude further breaks of this function'. This should be valid for the current execution and be automatically reset when the program is restarted.

 

  • Also, the menu command should provide the possibility to override all SetBreakOnLibraryError functions.

 

Many thanks!

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 

Wolfgang

complete C99 support

Status: Under Consideration
by Active Participant Wolfgang on ‎10-29-2010 07:02 AM

well, the title says it all: extend the current partial support of C99 standard to full support

Hi,

 

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.

 

Peter

m-a

Make scanf read back [+][-]Inf and NaN

Status: Under Consideration
by Member m-a on ‎04-20-2012 10:12 AM

Greetings,

 

LabWindows/CVI 9.0.1's implementation of <stdio.h> *scanf and <stdlib.h> strtod functions appears not to support reading back "NaN", "Inf", "+Inf" or "-Inf" values, although printf() can generate them. May I suggest to add functionality like described below.

 

Practical use would be that it's easier to propagate "invalid measurement" through strings if strto*() and *scanf() understand all classes of strings that *printf() family functions will generate.

 

This suggestion is in alignment with ISO 9899:1999 (withdrawn) and its successor ISO 9899:2011, i. e. C99 and C11. Note that there is a "stronger" suggestion to implement all of the C11 standard library in the idea exchange already, which - if implemented - would subsume this suggestion, but as the bare minimum, I'd certainly appreciate seeing this in CVI 2012.

 

Demo code:

 

 printf("%g\n", -NotANumber());
 printf("%+g\n", PositiveInfinity());
 printf("%g\n", NegativeInfinity());
 double x = 0; int i;
 i = sscanf("NaN", "%lf", &x); printf("i=%d, x=%g\n", i, x);
 i = sscanf("Inf", "%lf", &x); printf("i=%d, x=%g\n", i, x);
 errno = 0; x = strtod("NaN", NULL); printf("x=%g, errno=%d\n", x, errno);

 

Desired result:

 

 -NaN

 +Inf

 -Inf

 i=1, x=NaN

 i=1, x=Inf

 x=NaN, errno=0

 

Actual result: we see that printf supports NaN/Inf, but scanf and strtod do not:

 

 NaN
 +Inf
 -Inf
 i=0, x=0
 i=0, x=0
 x=0, errno=0

 

Thank you.

 

Is NI road map going to allow applications that are developed with CVI for Windows to run also on the Apple MAC OS as well as run on IPhone and Android Devices? The current alternative to develop the applications for the Apple MAC OS is on X-Code IDE where the code with Objective C (and Objective C++). The code that is developed with CVI cannot be ported over to the MAC OS because Objective C is not based on the ANSI C Standard. X-Code IDE is a powerful but also a clumsy IDE and can be unforgiving. NI also provides the drivers for most its hardware for the MAC. In my opinion the CVI IDE has a much better IDE than X-Code and CVI is more intuitive to use from a development perspective.  Since there is open source CLang Compiler for the MAC why can't NI import the CLang Compiler to work with the MAC and IPhone? Both Windows and MAC use the same Intel Microprocessor. Intel also has a compiler for the MAC OS that is separate from the X-Code IDE.

To develop the applications for Android devices requires the Eclipse IDE. Can CVI be adapted to develop software with the Eclipse IDE like an add-on?

I'd really appreciate a warning for "empty bodies" or whatever it is called, i.e. things like

 

for(...);
while(...);
if(...);

 If written like

if(...) { };

 it is OK.

 

In principle CVI supports external compilers for an optimized release version such as Intel's ICL and I managed to successfully compile release versions using ICL 11.1.

 

However, documentation on this issue is sparse.

 

It is even worse if one attempts to use an external linker which might be appropriate if one attempts to use e.g. Intel's MKL. Here I would love to see the support of external linkers in combination with an improved documentation.

 

Similarly, CUDA is becoming more attractive for more demanding floating point applications - I would consider it very useful if NI could provide e.g. an application note of how to do this in an easy to follow tutorial.

Status: Declined
Documenting the intricacies of third-party compilers is a pretty difficult task, since things are always liable to change without NI necessarily being aware of it, and the complexity of some of the compilers could easily overwhelm NI's ability to document them properly. As far as linkers are concerned, there is way too much CVI-specific work that the built-in linker must do. Therefore, it is very unlikely that CVI could ever support third-party linkers.
Andre_Saller

Tile Sourcecode Windows inside the IDE

Status: New
by Active Participant Andre_Saller on ‎09-02-2011 05:27 AM

Tiling windows is only possible, when they are released from the IDE before. But navigating between the IDE and the released windows is difficult. It would be nice if the sourcecode and uir windows could be tiled INSIDE the IDE. Could look like this:

tiledwindow.JPG

tstanley

Implement the 'long double' type with 80 bits of precision.

Status: New
by Active Participant tstanley ‎01-10-2011 09:55 AM - edited ‎01-10-2011 09:56 AM

Currently the 'long double' type has 64 bits of precision, which is the same as the 'double' type.  It would be handy on occasion to be able to use the full 80 bits of precision like is available with the Intel compiler.

0 Kudos
ThomasEDoyle

Structured Exception Handling

Status: New
by Member ThomasEDoyle on ‎12-15-2012 03:54 PM

The addition of structured exception handling (SEH) would be a welcomed addition to CVI. This would allow for much cleaner handling of complex exception situations.

 

 

0 Kudos
Jäger

CVI Lizenz

Status: New
by Member Jäger on ‎06-25-2012 02:49 AM

Wenn ein Rechner nicht am Nezt ist, vielleicht das Kabel nicht richtig drin oder am Platz kein Netz mehr frei ist, dann wird CVI mit einer eingeeschränkten Testlizenz gestartet und würde dann eine EXE generieren, welche in der Laufzeit eingeschränkt ist. Oft ist es der Fall, dass jemand CVI ohne Netzt started um im Quelltext etwas zu kontrollieren. Zu einem späteren Zeitpunkt erstellt jemand eine EXE neu und bemerkt nicht, dass das gestartete CVI keine Lizenz hat, obwohl der Rechner Netz hat. Er müsste erst CVI neustarten um die Lizenz zu holen.
Den Fehler bemerkt er erst am Folgetag, wo das Programm mit einem Fehler abgebrochen wird.
Es wäre aus meiner Sicht sehr sinnvoll, dass eine EXE, welche durch CVI ohne Lizenz erstellt wird, auch einen Popup mit eingebaut bekommt, welcher hiervor warnt.
Auch eine Abfrage, welche der Progrmmierer in sein Programm einbauen kann wäre sehr Hilfreich.

0 Kudos
shel

Allow Large Arrays

Status: New
by Member shel on ‎02-19-2012 11:02 PM

A byte array is limited to 2GB because the index is an int. Allow the use of long for an index so large arrays can be used.

0 Kudos
Miha_Vitorovic

Improve C preprocessor

Status: New
by Member Miha_Vitorovic on ‎04-04-2011 04:20 AM

The C preprocessor in other compilers has seen some improvements over the years. Maybe you could freshen the CVI one up a little bit. With most modern C compilers there are some pretty advanced things that can be done in the preprocessor. But include those header files into a CVI project, and you start getting errors in the strangest places. And the cause of these isn't even some nasty trick, but pretty basic stuff for any other preprocessor.

About LabWindows/CVI Idea Exchange

Do you have a feature idea for how to improve LabWindows/CVI? Submit and vote on ideas now!
  1. Browse by label or search in the LabWindows/CVI Idea Exchange to see if your idea has previously been submitted. If your idea exists, be sure to vote for the idea by giving it kudos to indicate your approval!
  2. If your idea has not been submitted click New Idea to submit a product idea. You should submit a separate post for each idea. Watch as the community gives your idea kudos and adds their input.
  3. Give kudos to other ideas that you would like to see implemented!
  4. NI R&D will review ideas that have been submitted and update the status.

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.

Idea Statuses
Top Kudoed Authors
By using this web site, you accept the Terms of Use for this web site. Please read these Terms of Use carefully before using any part of this site. Please go here for information on ni.com's copyright infringement policy.
My Profile | Privacy | Legal | Contact NI © 2011 National Instruments Corporation. All rights reserved.    |    E-Mail this Page E-Mail this Page