Remote logging mechanism
AssigneeIntel Corporation
InventorsYing'an Deng, Rui Jian, Caidong Song, Yuanhao Sun, Zhi Wang
Life of this patent
Estimating the term…
Abstract
A method and system to remotely log debug information is described. A computer executing program code generates debug information upon the occurrence of an error in execution. The debug information is then sent to a remote computer using a network adaptor. In one embodiment, the computer executing the program is Extensible Firmware Interface (EFI) compliant.
Claims20
A method comprising:
- executing a program code on a first computer system;
- halting execution of the program code upon an occurrence of an error during execution;
- generating debug information upon the occurrence of the error during execution of the program code, wherein generating debug information is performed by executing a function call in the program code to a network print driver, wherein the debug information includes metadata that describes program context information to facilitate locating of errors relating to the program code, wherein an error is assigned a timestamp corresponding to a time or a date indicating when the error occurred during execution of the program code, wherein the debug information further includes user-defined data to customize contents of the debug information as defined by a user, wherein the user-defined data comprises details relating to the contents of the debug information, wherein tracing or debugging of problems derived from the program code are performed based on the customized contents and in accordance with the user-defined data;
- transmitting the debug information to the network print driver;
- automatically resuming execution of the program code after transmitting the debug information to the network print driver;
- and
- transmitting the debug information to a second computer system via a network adaptor.
A method comprising:
- receiving debug information from a computer program at a filter and node builder upon an occurrence of an error during execution of the computer program;
- building a node of debug information using configurable parameters from a configuration module, wherein the configurable parameters are selected from one or more of a priority, a time stamp, a host ID, metadata, a separator, a module name, a sub-module name, a priority, a file name, a line number, a project name, and a serial number, wherein the debug information is filtered at the filter and node builder using the configuration parameters from the configurable module;
- transmitting the node through a network adaptor using a scheduler without user intervention, wherein the filter and node builder is further used to construct a node of the debug information, wherein the node is broken down into packets suitable for transmitting the node;
- and
- buffering the node into a storage device upon failure to transmit the node through the network adaptor.
A non-transitory computer-readable storage medium on which a plurality of instructions are stored, wherein the instructions when executed cause a processor to perform a method comprising:
- executing a program code in a first computer system;
- halting execution of the program code upon an occurrence of an error during execution;
- generating debug information upon the occurrence of the error during execution of the program code, wherein generating debug information is performed by executing a function call in the program code to a network print driver, wherein the debug information includes metadata that describes program context information to facilitate locating of errors relating to the program code, wherein an error is assigned a timestamp corresponding to a time or a date indicating when the error occurred during execution of the program code, wherein the debug information further includes user-defined data to customize contents of the debug information as defined by a user, wherein the user-defined data comprises details relating to the contents of the debug information, wherein tracing or debugging of problems derived from the program code are performed based on the customized contents and in accordance with the user-defined data;
- transmitting the debug information to the network print driver;
- automatically resuming execution of the program code after transmitting the debug information to the network print driver;
- and
- transmitting the debug information to a second computer system via a network adaptor.
A computer system comprising:
- a processor;
- a network adaptor operatively coupled to the processor;
- at least one flash device operatively couple to the processor on which firmware instructions are stored;
- and
- at least one storage device on which computer program code is stored, which when executed by the processor performs operations comprising:
- receiving debug information from a computer program upon the occurrence of an error during execution of the program code;
- applying configuration parameters to the debug information to create a debug information node, wherein the debug information node includes data selected from one or more of a priority, a time stamp, a host ID, metadata, a separator, a module name, a sub-module name, a priority, a file name, a line number, a project name, and a serial number, wherein the debug information is filtered at the filter and node builder using the configuration parameters from the configurable module;
- transmitting the debug information node via the network adaptor to a remote computer without user intervention, wherein the filter and node builder is further used to construct a node of the debug information, wherein the node is broken down into packets suitable for transmitting the node;
- and
- buffering the node into a storage device upon failure to transmit the node through the network adaptor.
A non-transitory computer-readable storage medium on which a plurality of instructions are stored, wherein the instructions when executed cause a processor to perform a method comprising:
- receiving debug information from a computer program at a filter and node builder upon an occurrence of an error during execution of the computer program;
- building a node of debug information using configurable parameters from a configuration module, wherein the configurable parameters are selected from one or more of a priority, a time stamp, a host ID, metadata, a separator, a module name, a sub-module name, a priority, a file name, a line number, a project name, and a serial number, wherein the debug information is filtered at the filter and node builder using the configuration parameters from the configurable module;
- transmitting the node through a network adaptor using a scheduler without user intervention, wherein the filter and node builder is further used to construct a node of the debug information, wherein the node is broken down into packets suitable for transmitting the node;
- and
- buffering the node into a storage device upon failure to transmit the node through the network adaptor.
An apparatus comprising:
- a storage device having instructions;
- and
- a processor coupled with the storage device, the processor execute instructions to perform one or more operations comprising:
- receiving debug information from a computer program at a filter and node builder upon an occurrence of an error during execution of the computer program;
- building a node of debug information using configurable parameters from a configuration module, wherein the configurable parameters are selected from one or more of a priority, a time stamp, a host ID, metadata, a separator, a module name, a sub-module name, a priority, a file name, a line number, a project name, and a serial number, wherein the debug information is filtered at the filter and node builder using the configuration parameters from the configurable module;
- transmitting the node through a network adaptor using a scheduler without user intervention, wherein the filter and node builder is further used to construct a node of the debug information, wherein the node is broken down into packets suitable for transmitting the node;
- and
- buffering the node into a storage device upon failure to transmit the node through the network adaptor.
Dependencies are inferred from the claim text.