Legal claims defining the scope of protection, as filed with the USPTO.
1. A method of instrumentation for a software instruction, the method comprising: identifying a location in the instruction to insert a probe, wherein the probe is a breakpoint; replacing the instruction with the probe by copying the instruction to a predefined location; executing, by a processor, the instruction in a kernel space; generating a first exception upon encountering the probe and calling a first exception handler, wherein the first exception handler is configured to call an instrumentation routine; saving a system register state as part of the first exception; executing the first exception handler; saving register contents of a first trampoline prior to executing the instrumentation routine; generating a second exception when the instrumentation routine encounters an error and calling a second exception handler; and responsive to determining that the second exception is due to code of the instrumentation routine that was executed in a context of the first exception, returning from the second exception handler to a second trampoline instead of returning to the instrumentation routine that generated the exception; recovering from the first and second exceptions and returning a system to a sane state to continue normal execution of the instruction, wherein the second trampoline restores the system to the sane state.
2. The method of claim 1 , further comprising: associating the instrumentation routine to be executed upon encountering the probe.
3. The method of claim 2 , wherein the instrumentation routine enables a user to access relevant tracing or debugging information.
4. The method of claim 1 , wherein saving the register contents includes collecting essential debug information.
5. The method of claim 1 , wherein replacing the instruction with the probe further comprises flushing a processor cache if required.
6. A system comprising: a processor, a memory, a computer readable storage device coupled to the processor, and a software comprising instruction encoded in the computer readable storage device and executable by the processor causing the processor to: execute an instruction in a kernel space wherein a probe is inserted at an identified location of the instruction and the instruction is copied to a predefined location; generate a first exception upon encountering the probe and calling a first exception handler and the first exception handler is configured to call a instrumentation routine; save a system register state as part of the first exception; execute the first exception handler; save register contents of a first trampoline prior to executing the instrumentation routine; generate a second exception when an instrumentation routine encounters an error and calling a second exception handler; responsive to determining that the second exception is due to code of the instrumentation routine that was executed in a context of the first exception, return from the second exception handler to a second trampoline instead of returning to the instrumentation routine that generated the exception; and return the system to a sane state to continue normal execution of the instruction by recovering from the exceptions, wherein the second trampoline restores the system to the sane state.
7. The system of claim 6 , wherein the instrumentation routine is associated to be executed upon encountering the probe.
8. The system of claim 6 , wherein saving the register contents includes collecting essential debug information.
9. The system of claim 6 , wherein replacing the instruction with the probe further comprises flushing a processor cache if required.
10. A computer program product comprising a computer readable storage device having a computer readable program comprising software, wherein the computer readable program when executed on a computer causes the computer to: execute an instruction in a kernel space wherein a probe is inserted at an identified location of the instruction and the instruction is copied to a predefined location; generate a first exception upon encountering the probe, save a system register state as part of the first exception; execute a first exception handler; save register contents of a first trampoline [setjmp( )] prior to executing an instrumentation routine, and the first exception handler is configured to call the instrumentation routine; generate a second exception when the instrumentation routine encounters an error and calling a second exception handler; responsive to determining that the second exception is due to code of the instrumentation routine that was executed in a context of the first exception, return from the second exception handler to a second trampoline [longjmp( )] instead of returning to the instrumentation routine that generated the exception; and the second trampoline [longjmp( )] is configured to recover from the exceptions to continue normal execution of the instruction and return to the system to a sane state.
11. A method of instrumentation for software instructions that are executable on a processor of a device, the method comprising: executing the instruction in a kernel space wherein a probe is inserted at an identified location of the instruction and the instruction is copied to a predefined location; generating a first exception upon encountering the probe, saving a system register state as part of the first exception; executing a first exception handler; saving register contents of a first trampoline [setjmp( )] 0 prior to executing an instrumentation routine, and the first exception handler is configured to call the instrumentation routine; generating a second exception when the instrumentation routine encounters an error and calling a second exception handler; responsive to determining that the second exception is due to code of the instrumentation routine that was executed in a context of the first exception, returning from the second exception handler to a second trampoline [longjmp( )] instead of returning to the instrumentation routine that generated the exception; and returning the system to a sane state to continue normal execution of the instruction by recovering from the exceptions, wherein the second trampoline [longjmp( )] restores the system to the sane state.
Unknown
October 11, 2011
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.