IP Library Granted Patent US 9,582,397
Granted Patent B2
US 9,582,397 · App. 14/421,273 · Granted Feb 28, 2017

Method and system for obtaining run-time information associated with executing an executable

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,582,397
App. No.
14/421,273
Granted
Feb 28, 2017
Kind
B2
Abstract

A method of obtaining run-time information associated with executing an executable is described. The method comprises receiving an external database comprising one or more external debugging information entries, retrieving the one or more external debugging information entries from the external database and storing the one or more external debugging information entries retrieved from the external database in a debugging information entries collection. The method further comprises providing the debugging information entries collection to a debugging information consumer, and obtaining the run-time information from letting the debugging information consumer retrieve run-time values and format the run-time values according to the external debugging information entries in the debugging information entries collection.

Claims (52)

1. A method of obtaining run-time information associated with executing an executable, the method comprising:

receiving an object file while executing the executable;

determining whether the object file comprises one or more embedded debugging information entries, and

where the object file comprises one or more embedded debugging information entries:

retrieving one or more embedded debugging information entries from the object file, and

including the one or more embedded debugging information entries retrieved from the object file in a debugging information entries collection;

receiving one or more external debugging information entries from an external database, wherein the one or more external debugging information entries relates to an array of registers;

storing the one or more external debugging information entries in the debugging information entries collection;

providing the debugging information entries collection to a debugging information consumer; and

obtaining the run-time information from at least one or more registers, one or more variables, one or more functions, one or more memory locations, for executing the executable, and letting the debugging information consumer retrieve run-time values and format the run-time values according to the external debugging information entries in the debugging information entries collection; and

presenting a visualization of the run-time values as formatted according to the external debugging information entries.

2. The method according to claim 1 , wherein the object file comprises an executable.

3. The method according to claim 1 , wherein the object file comprises a library.

4. The method according to claim 1 , wherein

the one or more external debugging information entries is provided in the external database;

the receiving of the one or more external debugging information comprising receiving the external database comprising the one or more external debugging information entries; and

the method further comprises retrieving the one or more external debugging information entries from the external database.

5. The method according to claim 1 , the method further comprising:

providing a user interface to receive one or more user provided external debugging information entries; and

storing the user provided external debugging information entries as defined by the user in the debugging information entries collection.

6. The method according to claim 1 , wherein the one or more external debugging information entries comprise one or more of debugging information entries having members representing one or more data types, one or more global variables, one or more local variables, one or more register, one or more function, or a mapped part of a memory associated with a memory mapped peripheral.

7. The method according to claims 1 , at least one of the one or more external debugging information entries defining a complex data type.

8. The method according to claim 1 , wherein the run-time values are retrieved from a part of a memory corresponding to a memory mapped peripheral.

9. A method of generating run-time information while executing an executable, the method comprising:

receiving an object file while executing the executable;

retrieving embedded debugging information entries (DIE) from object file;

formatting the embedded DIE to have a predetermined format;

retrieving external DIE from an external memory, wherein the one or more external DIE relates to an array of registers;

formatting the external DIE to have the predetermined format;

storing the embedded DIE and the external DIE in a DIE collection in a debugging information consumer;

obtaining the run-time information from at least one or more registers, one or more variables, one or more functions, one or more memory locations, for executing the executable, and letting the debugging information consumer retrieve run-time values and format the run-time values according to the external debugging information entries in the debugging information entries collection; and

presenting a visualization of the run-time values as formatted according to the external debugging information entries.

10. A computer system for obtaining run-time information associated with executing an executable on a processor, the computer system comprising:

an object file loader arranged to receive an object file while executing the executable, retrieve one or more debugging information entries (DIE) from the object file, and store the one or more debugging information entries in a debugging information entries collection, wherein if the debugging information entries are in a different format than the format used for entries in the debugging information collection, format the debugging information entries to the entries in the debugging information entries collection;

a DIE injector arranged to:

receive one or more external debugging information entries from an external memory at runtime, wherein the one or more external debugging information entries relates to an array of registers, and

store the one or more external debugging information entries in the debugging information entries collection; and

a DIE consumer arranged to:

receive the debugging information entries collection,

obtain the run-time information from at least one or more registers, one or more variables, one or more functions, one or more memory locations, for executing the executable, and letting the debugging information consumer retrieve run-time values and format the run-time values according to the external debugging information entries in the debugging information entries collection;

format the run-time values according to the external debugging information entries received from the debugging information entries collection; and

present a visualization of the run-time values as formatted according to the external debugging information entries.

11. The computer system according to claim 10 , the computer system further comprising:

an object file loader arranged to receive an object file, wherein the object file comprises one or more embedded debugging information entries; and

a DIE loader arranged to:

receive the object file from the object file loader,

retrieve one or more of the embedded debugging information entries from the object file, and

include the one or more of the embedded debugging information entries retrieved from the object file in the debugging information entries collection.

12. The computer system according to claim 10 , the DIE consumer arranged to retrieve the run-time values from at least

a part of a memory corresponding to a memory mapped peripheral.

13. The computer system according to claim 10 , the DIE consumer comprising at least one of a debugger, a debugger component, a profiler, a profiler component, a data formatter, a data formatter component, a visualizer and a visualizer components.

14. An integrated development environment comprising the computer system according to claim 10 .

Assignments (26)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042985 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051030/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0387 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042762 FRAME 0145. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051145/0184 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050745/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042985/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042762/0145 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040626 FRAME: 0683. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME EFFECTIVE NOVEMBER 7, 2016. Recorded Jan 12, 2017
From: NXP SEMICONDUCTORS USA, INC. (MERGED INTO); FREESCALE SEMICONDUCTOR, INC. (UNDER)
To: NXP USA, INC.
Reel/Frame 041414/0883 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNMENT DOCUMENTATION - INITIAL CONVENYANCE LISTED CHANGE OF NAME. PREVIOUSLY RECORDED ON REEL 040579 FRAME 0827. ASSIGNOR(S) HEREBY CONFIRMS THE UPDATE CONVEYANCE TO MERGER AND CHANGE OF NAME EFFECTIVE NOVEMBER 7, 2016. Recorded Dec 15, 2016
From: NXP SEMICONDUCTORS USA, INC. (MERGED INTO); FREESCALE SEMICONDUCTOR, INC. (UNDER)
To: NXP USA, INC.
Reel/Frame 040945/0252 →
CHANGE OF NAME Recorded Nov 16, 2016
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 040626/0683 →
CHANGE OF NAME Recorded Nov 9, 2016
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 040579/0827 →
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 040928/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 040925/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12092129 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Jul 14, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039361/0212 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
SECURITY AGREEMENT SUPPLEMENT Recorded Mar 7, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 038017/0058 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 7, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037458/0359 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 7, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037458/0341 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0974 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded May 4, 2015
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 035571/0080 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded May 4, 2015
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 035571/0095 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded May 4, 2015
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 035571/0112 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2015
From: CIOCOI, VALENTIN; MADAN, TEODOR; NISTOR, MIHAIL
To: FREESCALE SEMICONDUCTOR INC.
Reel/Frame 034949/0703 →