Nova Patents
US8997059B2

Reverse debugging

Summary by NHIP

Reverse Debugging via Extended Basic Blocks

The method reversely debugs a program by utilizing compiler-generated information related to extended basic blocks. It sets checkpoints at entry addresses of these blocks and returns the program to the nearest preceding checkpoint before a target breakpoint to retrieve stored register and memory values.

Claim Score by NHIP

Read claim 1, the broadest

Abstract

A method and reverse debugger are provided for reversely debugging a program. The method includes: obtaining debugging information of the program as outputted by a compiler, the debugging information including information related to extended basic blocks of the program; in response to the program entering into reverse debugging, setting a reverse debugging checkpoint at an entry address of at least one extended basic block; in response to the program reaching a set reverse debugging checkpoint, storing information required by debugging that corresponds to the reverse debugging checkpoint; in response to receiving a set reverse debugging target breakpoint, making the program return to a reverse debugging checkpoint located before the reverse debugging target breakpoint and nearest to the reverse debugging target breakpoint, obtaining information required to be stored by the debugging stored at the reverse debugging checkpoint, and continuing to execute the program till the reverse debugging target breakpoint.

US8997059B2, drawing sheet 1
Sheet 1 of 9

Term

Projected expiry 19 September 2033.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Projected expiry

18 claims: 2 independent, 16 dependent

  1. 1
    Broadest claimClaim Score 55, average(NHIP)A method of reversely debugging a program, comprising:obtaining debugging information of the program as outputted by a compiler, the debugging information comprising information related to extended basic blocks (EBBs) of the program;in response to the program entering into a reverse debugging, setting a reverse debugging checkpoint at an entry address of at least one extended basic block;in response to the program reaching a set reverse debugging checkpoint, storing information required to be stored by debugging that corresponds to the reverse debugging checkpoint;in response to receiving a set reverse debugging target breakpoint, making the program return to a reverse debugging checkpoint that is located before the reverse debugging target breakpoint and nearest to the reverse debugging target breakpoint, obtaining information required to be stored by the debugging stored at the reverse debugging checkpoint, and continuing to execute the program till the reverse debugging target breakpoint.
  2. 10
    A reverse debugger, comprising:an obtaining module configured to obtain debugging information of a program as outputted by a compiler, the debugging information comprising information related to extended basic blocks (EBBs) of the program;a setting module configured to in response to the program entering into a reverse debugging, set a reverse debugging checkpoint at an entry address of at least one extended basic block;a storing module configured to in response to the program reaching a set reverse debugging checkpoint, store information required to be stored by debugging that corresponds to the reverse debugging checkpoint;a returning module configured to in response to receiving a set reverse debugging target breakpoint, make the program return to a reverse debugging checkpoint that is located before the reverse debugging target breakpoint and nearest to the reverse debugging target breakpoint, obtain information required to be stored by the debugging stored at the reverse debugging checkpoint, and continue to execute the program till the reverse debugging target breakpoint.