1. A computer implemented system for monitoring employees comprising:
an interactive voice response (IVR) system executing on one or more computer processors configured to receive audio data providing a representation of an employee, the interactive voice response (IVR) system processing the employee audio data to determine time and location parameters to facilitate creation of real-time alerts;
an alert system executing on one or more processors, in communication with the interactive voice response (IVR) system;
the alert system configured to generate a real-time alert in response to detecting a potential problem condition, where the potential problem condition is detected using defined expectations for the employee audio data received by the interactive voice response (IVR) system, the defined expectations including a scheduled location and a scheduled time frame, including frequency or time periods, for receiving the employee audio data indicative of the employee being awake during many parts of his work shift, where the alert facilitates monitoring of the employee; and
the alert system configured to generate the alert with a delay such that transmission of the alert is delayed for a period of time to allow the employee additional time to cure the potential problem condition.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A computer-implemented method of generating an executable program, the method comprising:
receiving by a compiler at least one source file having source code therein;
inserting predicated calls to trace routines during compilation of the source code, wherein each predicated call comprises a function call that is conditional upon a value stored in a predicate register; and
linking object code generated from compiling said source code with object code which includes the trace routines.
2. The computer-implemented method of claim 1, wherein said predicated calls to the trace routines are executed if the value stored in the predicate register is true, but not if the value stored in the predicate register is false.
3. The computer-implemented method of claim 1, wherein the predicated calls are inserted into the trace routines after code optimizations are performed and before object file generation.
4. The computer-implemented method of claim 1, wherein said trace routines include a trace function procedure for tracing a function that is dynamically executed.
5. The computer-implemented method of claim 1, wherein said trace routines include a trace debug procedure for tracing a path taken during execution of the program, and wherein predicated calls to the trace debug procedure are inserted at control flow decision points.
6. The computer-implemented method of claim 5, further comprising:
replacing a no operation instruction at a branch slot with a predicated call to the trace debug procedure.
7. The computer-implemented method of claim 6, further comprising:
moving at least one instruction so as to position the no operation position at the branch slot.
8. A computer-implemented method of executing a deployed computer program with low-level tracing using compiler-inserted predicated tracing calls, the method comprising:
enabling a tracing mode by setting one or more predicate register bits in a microprocessor;
performing predicated calls to trace routines which insert trace data into at least one trace buffer; and
writing out a core file including said trace data upon a system crash.
9. The method of claim 8, wherein enabling the tracing mode is performed by an auxiliary software tool attaching to a process of the deployed computer program and setting said one or more predicate register bits.
10. The method of claim 8, wherein a trace buffer comprises a rotating buffer starting at a predetermined memory address.
11. The method of claim 8, wherein a trace buffer is allocated on a memory stack within a routine.
12. The method of claim 8, wherein said trace routines include a trace debug procedure for tracing a path taken during execution of the program, and wherein predicated calls to the trace debug procedure are positioned at control flow decision points.
13. A computer apparatus configured to execute a deployed computer program with low-level tracing using compiler-inserted predicated tracing calls, the apparatus comprising:
a processor for executing computer-readable program code;
memory for storing in an accessible manner computer-readable data;
computer-readable program code configured to enable a tracing mode by setting one or more predicate register bits in a microprocessor;
computer-readable program code configured to perform predicated calls to trace routines which insert trace data into at least one trace buffer; and
computer-readable program code configured to write out a core file including said trace data upon a system crash.
14. The computer apparatus of claim 13, further comprising:
computer-readable program code configured to enable the tracing mode by attaching to a process of the deployed computer program and setting said one or more predicate register bits.
15. The computer apparatus of claim 13, wherein a trace buffer comprises a rotating buffer starting at a predetermined memory address.
16. The computer apparatus of claim 13, wherein a trace buffer is allocated on a memory stack within a routine.
17. The computer apparatus of claim 13, wherein said trace routines include a trace debug procedure for tracing a path taken during execution of the program, and wherein predicated calls to the trace debug procedure are positioned at control flow decision points.
18. A computer apparatus configured to generate an executable program, the apparatus comprising:
a processor for executing computer-readable program code;
memory for storing in an accessible manner computer-readable data;
computer-readable program code configured as a compiler, wherein the at least one source file having source code therein is receivable by the compiler;
computer-readable program code configured to insert predicated calls to trace routines during compilation of the source code, wherein each predicated call comprises a function call that is conditional upon a value stored in a predicate register; and
computer-readable program code configured to link object code generated from compiling said source code with object code which includes the trace routines.
19. The computer apparatus of claim 18, wherein said predicated calls to the trace routines are executed if the value stored in the predicate register is true, but not if the value stored in the predicate register is false.
20. The computer apparatus of claim 18, further comprising:
computer-readable program code configured to perform code optimizations prior to insertion of the predicated calls to the trace routines.