NI recognizes that it is important to consider opportunities for code reuse whenever moving forward with a new project or platform. The Call Library Function Node is a LabVIEW VI which allows for code reuse that calls a DLL or shared library function directly inside your LabVIEW code. NI Linux Real-Time installs the GNU debug server on NI embedded hardware so that you can debug C and C++ shared libraries called by your LabVIEW Real-Time application.
Refer to Creating Shared Library For LabVIEW Real-Time or VeriStand on NI Linux RT Target.
The GDB debug server allows developers to debug shared library code called by a LabVIEW VI. This can be done within the Eclipse environment or using the command line and an SSH Client. Both options will be discussed here.
For some debugging steps, GDB must have access to the .so files and other information from target directories. Therefore, before you start debugging, the /usr and /usr/lib directory (or the directory contains your .so files) must be copied over to the host computer. See Step 6 under Programming in LabVIEW Real-Time above for information about how to transfer files between the host and the embedded system in Eclipse. For the rest of this document, the folder on the host you have copied these files into will be referred to as <RootFileSystemDir>.
Refer to Getting Started with C/C++ Development Tools for NI Linux Real-Time, Eclipse Edition for basic information on using the Eclipse environment to communicate with your NI Linux Real-Time embedded system as well as information on general debugging within Eclipse.
Add the following command to Commands to execute before application: gdbserver: NNNN –attach $(pidof lvrt) (where NNNN is an available TCP port on the embedded system)
gdbserver: NNNN –attach $(pidof lvrt)
set breakpoint pending on
set sysroot <RootFileSystemDir>
Collaborate with other users in our discussion forums
A valid service agreement may be required, and support options vary by country.