Skip to content

Enhanced Debugging Tools

Tom McQuillan edited this page Jul 2, 2025 · 2 revisions

Overview

The Enhanced Debugging Tools feature provides developers with powerful diagnostic capabilities for troubleshooting communication between the LabVIEW Client and the Nominal Platform. This feature introduces three conditional disable symbols that enable different levels of debugging and monitoring.

Conditional Disable Symbols

Available Symbols

The following conditional disable symbols control the debugging functionality:

Symbol Values Purpose
Nominal_Debug_File TRUE | FALSE Records all HTTP REST communication to log files
Nominal_Debug_Trace TRUE | FALSE Sends debugging data to NI Desktop Execution Trace Toolkit
Nominal_Disable_Comms TRUE | FALSE Development flag to disable platform communication

image

Symbol Configuration

How to Enable Debugging Symbols

  1. In your LabVIEW project, navigate to Project > Properties
  2. Select Conditional Disable Structure from the left panel
  3. Add the following symbols with your desired values:
    • Nominal_Debug_File (TRUE or FALSE)
    • Nominal_Debug_Trace (TRUE or FALSE)
    • Nominal_Disable_Comms (TRUE or FALSE)

Debugging Features

Nominal_Debug_File

Purpose: Records all HTTP REST communication between the LabVIEW Client and the Nominal Platform to timestamped log files.

Log File Details:

  • Location: <Public Application Data>\Nominal_Debug_File\
    • Typically: C:\ProgramData\Nominal_Debug_File\
  • Filename Format: Timestamped filename with .txt extension
  • Rotation: New log file created every hour
  • Retention: Log files older than 5 days are automatically deleted when the API is next used with this symbol enabled
  • Security: Your API Token is removed from messages before logging takes place

Log File Viewer:

  • A log file viewer.vi helper is included in the package
  • Formats log files for easier viewing and analysis
  • Distributed in source code format for runtime independence

Nominal_Debug_Trace

Purpose: Provides real-time debugging capabilities by sending trace data to the NI Desktop Execution Trace Toolkit.

Features:

  • Real-time viewing of REST messages and responses
  • Integration with NI's standard debugging tools
  • Live monitoring capabilities during development
  • Security: Your API Token is removed from messages before logging takes place

Requirements:

  • NI Desktop Execution Trace Toolkit must be installed and available

Nominal_Disable_Comms

Purpose: Development flag that disables actual communication between the LabVIEW Client and the Nominal Platform while preserving debugging output.

Use Cases:

  • Testing debugging tools without affecting production systems
  • Developing and validating communication logic offline
  • Simulating communication scenarios

Behavior:

  • Blocks actual HTTP communication to Nominal Platform
  • Trace data and log files are still generated when respective symbols are enabled
  • Useful for isolated development and testing

Usage Examples

Basic Debugging Setup

Nominal_Debug_File = TRUE
Nominal_Debug_Trace = FALSE
Nominal_Disable_Comms = FALSE

This configuration enables file logging while maintaining normal platform communication.

Development/Testing Setup

Nominal_Debug_File = TRUE
Nominal_Debug_Trace = TRUE
Nominal_Disable_Comms = TRUE

This configuration enables all debugging features while preventing actual communication with the platform.

Production Monitoring

Nominal_Debug_File = FALSE
Nominal_Debug_Trace = FALSE
Nominal_Disable_Comms = FALSE

This configuration disables all debugging features for normal production operation.

Best Practices

File Management

  • Monitor disk space when Nominal_Debug_File is enabled, especially in high-traffic applications
  • The 5-day automatic cleanup helps manage storage, but consider manual cleanup for extended debugging sessions
  • Use the provided log file viewer for efficient analysis

Performance Considerations

  • Enable debugging symbols only when needed, as logging can impact performance
  • Nominal_Debug_Trace provides real-time feedback but may affect execution speed
  • Consider using Nominal_Disable_Comms for extended debugging sessions to avoid unnecessary network traffic