In rare cases, programs under FireDaemon Pro control don't operate as expected. FireDaemon Pro's debug log and the Windows Event Log are the first places to look. However, they don't help much in the case of where the program is launched under FireDaemon Pro control successfully, keeps running (i.e. doesn't terminate) yet appears to do nothing (i.e. appears frozen). So what else can we do to understand as much as possible about the program's (bad) behaviour?! This guide will show you how to capture your program's state in order to understand what it is up to.
Where To Start
The first places to start are as follows:
- Check the Windows Event Log. FireDaemon Pro and the operating system both log significant events to the Event Log (e.g. APPCRASH events)
- Enable FireDaemon Pro Debug Logging (see the Logging tab). Set the logging option to Very Verbose. Examine the debug log file to ensure your program is being launched and not getting caught in a crash / restart loop
- If your program emits messages to stdout or stderr, then enable FireDaemon Pro Output Capture (see the Logging tab). Examine the contents of these logs file and look for program launch errors or other issues.
Using External Tools
If the steps above yield no useful information then you will need to interrogate the process itself. Microsoft has two great free tools available to assist you:
SysInternals Process Explorer
Process Explorer helps us to get insight into a processes state:
- Does the process do anything at all or is it waiting on something or is the process suspended?
- How much system resources does the process use?
- Which security-related properties does the process have?
- Which user account is the process running as?
- Which handles to system objects does the process hold?
The screenshots below show specific Process Explorer diagnostic information. To do this:
- Start Process Explorer elevated. If started without administrative rights, you can relaunch Process Explorer by selecting File -> Show Details for All Processes
- Ensure that the Upper Pane - the process tree view - shows relevant information by selecting the columns of interest. To do this click select View -> Select Columns then choose columns of interest such as Process, PID, CPU, Private Bytes, Working Set, User Name, Session, Integrity, Image Type etc.
- Ensure that the Lower Pane shows the handles opened by a process
- Navigate to FireDaemon.exe's process tree that launched your program
- Right-click on the subprocess (e.g. BlackwakeServer.exe) and choose Properties to get specific real-time details.
Process Explorer Process Tree Showing FireDaemon Pro Service, Subprocess and Lower Pane
Process Explorer Image Properties
Process Explorer Security Properties
Process Explorer Threads Properties
SysInternals Process Monitor
Process Monitor helps us to get insight into the activities a process performs including:
- Registry activity
- File system activity
- Process / thread activity
- Network activity
Additionally, Process Monitor can be instructed to capture all the above events and the resulting event log can be saved for later investigation. The screenshots below show specific Process Monitor diagnostic information. To do this:
- Start Process Monitor (you will be asked to elevate)
- In the Process Monitor dialog, click on the Filter icon in the toolbar and include the process name(s) of the process to monitor. The process name is the executable's filename (e.g. BlackwakeServer.exe).
- Enable monitoring of Registry, File system, Process and Network activity (File -> Capture Events)
- Start the FireDaemon Pro service running your program. Wait until the problematic condition happens, then save the event trace to file (File -> Save).
Process Monitor Process Activity
What To Send Us For Debugging Purposes
If your program is running abnormally, and you want us to help you, then raise a support ticket and send us as much information as possible about the program you are running under FireDaemon Pro control. Use the tools above as follows:
- Process Explorer: Save the visible panes to a text file via File -> Save As. The columns to select in the process tree should be CPU, Private Bytes, Working Set, User Name, Session, Integrity, Image Type, GDI Objects. Also take screenshots of the Image, Security, Job, Threads, Performance, and TCP/IP tabs from the Properties dialog for the process in question.
- Process Monitor: Once the trace is over, save the trace to a file.
Then bundle these files and images up in ZIP file and attach it to your support ticket.