FreeVR: Virtual Reality Integration Library
FreeVR
Tutorials
User Guide
Programming
Functions

FreeVR

TUTORIALS

DOWNLOADS

GUIDES
    Administrator
    User
    Programming
    Function List
    Library Dev
    Socket Interface

MAN PAGES


All materials
Copyright © 2024
William R. Sherman

Manpage of FREEVR DEBUG

FREEVR DEBUG

Section: FreeVR Debug Levels (7fv)
Updated: 29 February 2024
Index Return to Main Contents

 

NAME

FreeVR Debug levels — FreeVR's numeric values for configuring how much debugging info to output  

DESCRIPTION

The amount of debugging information that a running FreeVR virtual reality application outputs can be controlled by the configuration file in conjunction with a pair of environment variables. Most of the debugging output is geared toward debugging FreeVR itself, but there are settings to help debug VR configuration settings, and some for application debugging.  

Debug Values

Specific operations are coded with particular debugging values which allows the user or developer to focus in on particular issues they may be experiencing, or want to keep watch for. Internally, these are numeric values that in-code are mapped to #define'd macro values. For convenience in the configuration file, these values are also mapped to built-in "variables" (in fact constants) and can be expressed as such to avoid having to learn all the numbers. Unfortunately, when using the environment variables, the actual numeric values must be used, so those values are included as well in the table below.

Here is the list of debugging "topics", the built-in variables and the preset values:

Debugbuilt-innum.
Parametervariablevalue

output nothingdebug:none0
Always outputdebug:always1
Almost always outputdebug:aalways2
Absolutely alwaysdebug:all23
Commonly outputdebug:common40
Default outoutdebug:default50
Seldom outputdebug:seldom100
Rarely outputdebug:rare200
Almost never outputdebug:almostnever1000

Configuration errordebug:configerror3
Configuration warningdebug:configwarn10
Process spawning/forking errordebug:spawn20

Terminal Trace Post Execution Outputdebug:tracedump57
Performer informationdebug:performer60
Performer detaildebug:performerdetail560
GLX informationdebug:glx60
Config variable informationdebug:variable65
Config parsing informationdebug:parse70
Config parsing detaildebug:parsedetail190
Self-control informationdebug:selfcontrol105
Library execution tracedebug:trace125

Magellan input informationdebug:mag150
Shmem input informationdebug:shmem151
Static input informationdebug:static652
X11-windows input informationdebug:xwin153
Pinchglove input informationdebug:pinchg154
Ascension Flock of Birds input infodebug:ascfob155
Polhemus Fastrak input informationdebug:fastrk156
Shared memory output informationdebug:shmemd157
Vrui DeviceDaemon output infodebug:vruidd158
VRPN input informationdebug:vrpn159

General input processes infodebug:input180
Configuration informationdebug:config185
Callback handling informationdebug:callback195
Callback handling detailsdebug:callbackdetail695
Barrier handling informationdebug:barrier196

Serial communications informationdebug:serial250
Math processing informationdebug:math260
Object database search informationdebug:objsearch270
Memory usage trackingdebug:trackmem296
Semaphore lock trackingdebug:tracklocks297

 

CONFIGURATION

 

Tiered debugging output

FreeVR has a two-tiered capability for controlling how much and what output will be provided when running a FreeVR application. Each of these tiers can be independently set at any of several levels within the FreeVR configuration — such as at the process level, the system level, or globally.
Tier 1 — Output all information at or below a particular level
The more general way to control debug and messaging output is by setting an overall "debug level". The value at which this parameter is set will allow all message levels at or below that value to be output. For example if the debug level is set to 40 (common), then any debug output for always, aalways, configerror, configwarn, spawn, and common will be output because each of these has a numeric value less than or equal to the numeric value of common.

In the configuration file, this is set as the DebugLevel parameter.

Tier 2 — Output information at exactly a particular level
The overall goal for debugging output is to limit it to see values that will help highlight issues that need to be addressed (or to show that the system is operating normally). At times, of course, one may want to focus on a particular aspect of the running system to debug a specific aspect. In these cases, it is counter productive to set the level for something like debug:vruidd and have all the additional debugging information for all the other inputs and also the graphics rendering systems giving details of their operation that are not important to the task at hand.

To solve this, there is a mechanism to print one additional debug value on top of the less-than-or-equal-to values. In the configuration file, this is referred to as the DebugThisToo parameter.

Thus, when the system decides whether to output a particular debugging related message, it checks both whether the value is less-than-or-equal-to the value of DebugLevel or is exactly equal to the value of DebugThisToo.

 

Specifying values in the configuration

As mentioned, there are three configuration object types that can have the debug output values set, and they are, in order of precedence (where being lower in the list overrides those that come before):
1)
Global configuration settings
   set DebugLevel = $debug:common;
   set DebugThisToo = $debug:parsedetail;
2)
System object settings
   system $system += { DebugLevel = $debug:seldom; }
3)
Process object settings
   process "joydev-input" += { DebugThisToo = $debug:joydev; }
   process "default-telnet" += { DebugThisToo = $debug:parse; }
4)
Environment variable settings

The following section describes the two environment variables that are used to set the debug output parameters run in a given terminal shell.

 

ENVIRONMENT VARIABLES

When a FreeVR application is executed, there are two environment variables in particular that affect the debugging information output:

FREEVR_DEBUGLEVEL_NO
Set level of debugging output that a FreeVR application will generate. Setting this value happens last, and thus none of the other means of reading configuration commands will override this setting — hence the NO (No Override) tag.
FREEVR_DEBUGEXACT_NO
Set an extra, exact level of debugging output that a FreeVR application will additionally generate, in addition to all messages at or below the general debug-level. Setting this value happens last, and thus none of the other means of reading configuration commands will override this setting — hence the NO (No Override) tag.
 

SEE ALSO

freevrrc(5FV), freevr(7fv),

The FreeVR web site:

http://www.freevr.org

 

LOCATION

The debug values are set in the source code "vr_debug.h" file, and the mapping of those values to built-in "variables" is in the "vr_debug.c" source file.

 

COPYRIGHT

Copyright 2024, Bill Sherman, All rights reserved.


 

Index

NAME
DESCRIPTION
Debug Values
CONFIGURATION
Tiered debugging output
Specifying values in the configuration
ENVIRONMENT VARIABLES
SEE ALSO
LOCATION
COPYRIGHT

This document was created by man2html, using the manual pages.
Time: 21:57:57 GMT, March 04, 2024