Method to isolate crash of an embedded multi-threaded application to a shared library call without core dump files or debugger
First Claim
Patent Images
1. A method for isolating errors in an embedded information handling system including a multi-threaded application having a signal handler, a shared library having at least one function, and a library encapsulation module having a function clone associated with up to each function of the shared library, the method comprising:
- (a) a first calling thread of the multi-threaded application calling a first function clone associated with a first function of the shared library;
(b) the called first function clone determining a process ID associated with the first calling thread and a function ID associated with the called first function;
(c) the called first function clone storing the process ID associated with the first calling thread and a function ID associated with the called first function to a library encapsulation table protected by a mutex;
(d) the called first function clone calling the called first function;
(e) the called first function generating an error;
(f) the signal handler catching the error;
(g) the signal handler determining the function ID and process ID associated with the error using the library encapsulation table; and
(h) the signal handler writing the process ID and function ID associated with the error to a log file.
14 Assignments
0 Petitions
Accused Products
Abstract
The present disclosure relates in general to embedded information handling systems, and more particularly to systems and methods for isolating a crash of an embedded multi-threaded application to a shared library call in embedded information handling systems.
11 Citations
20 Claims
-
1. A method for isolating errors in an embedded information handling system including a multi-threaded application having a signal handler, a shared library having at least one function, and a library encapsulation module having a function clone associated with up to each function of the shared library, the method comprising:
-
(a) a first calling thread of the multi-threaded application calling a first function clone associated with a first function of the shared library; (b) the called first function clone determining a process ID associated with the first calling thread and a function ID associated with the called first function; (c) the called first function clone storing the process ID associated with the first calling thread and a function ID associated with the called first function to a library encapsulation table protected by a mutex; (d) the called first function clone calling the called first function; (e) the called first function generating an error; (f) the signal handler catching the error; (g) the signal handler determining the function ID and process ID associated with the error using the library encapsulation table; and (h) the signal handler writing the process ID and function ID associated with the error to a log file. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for isolating errors in an embedded information handling system including a multi-threaded application having a signal handler, a shared library having at least one function, and a library encapsulation module having a function clone associated with up to each function of the shared library, the method comprising:
-
(a) calling the function clone associated with one of the functions of the shared library, wherein the calling is performed by a calling thread of the multi-threaded application, the calling thread includes a calling thread ID, and the one of the functions of the shared library includes a function ID; (b) determining the calling thread ID of the calling thread and the function ID of the function using the called function clone; (c) storing the calling thread ID of the calling thread and the function ID of the function to a library encapsulation table protected by a mutex, wherein the storing is performed by the called function clone; (d) calling the function associated with the called function clone, wherein the calling is performed by the called function clone; and (e)(1) executing the called function without an error, whereupon the called function clone removes the calling thread ID and the called function ID from the library encapsulation table, or (2) executing the called function with an error, whereupon the signal handler catches the error, determines the function ID and the process ID associated with the error using the library encapsulation table, and writes the process ID and function ID associated with the error to a log file. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. An embedded information handling system comprising:
-
a processor; a memory communicatively coupled to the processor; a local storage resource communicatively coupled to the processor; a multi-threaded application having a signal handler executable by the processor; a shared library communicatively coupled to the processor, the shared library having at least one function; and a library encapsulation module having a function clone associated with up to each function of the shared library, wherein the embedded information handling system is configured to; (a) call the function clone associated with one of the functions of the shared library, wherein the calling is performed by a calling thread of the multi-threaded application, the calling thread includes a calling thread ID, and the one of the functions of the shared library includes a function ID; (b) determine the calling thread ID of the calling thread and the function ID of the function using the called function clone; (c) store the calling thread ID of the calling thread and the function ID of the function to a library encapsulation table protected by a mutex, wherein the storing is performed by the called function clone; (d) call the function associated with the called function clone, wherein the calling is performed by the called function clone; and (e)(1) remove from the library encapsulation table the calling thread ID and the called function ID upon error-free execution of the called function, or (2) catch any error that occurs during execution, determine the function ID and the process ID associated with the error using the library encapsulation table, and write the process ID and function ID associated with the error to a log file. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification