A method and apparatus to perform dynamic compiled language interception processing at embedded database call sites using debug
Publication Date: 2017-Jul-11
The IP.com Prior Art Database
A Method and Apparatus to Perform Dynamic Compiled Language Interception Processing at Embedded Database Call Sites Using Debug Abstract Disclosed is a method to use debug technology to dynamically instrument database calls embedded in a compiled language executable. A method is needed to debug a database call that was not compiled with debug information using a debugger. Creating large scale commercial software products is a complex process that involves iterative development and test cycles. Different teams work on separate components that progress at different rates. This leads to situations in which one or more teams may be blocked by a requirement for another team’s component. This is one circumstance where component virtualization can provide a solution. Often, an obvious and convenient interface is available at which to perform component virtualization. These are clean boundaries between components, such as a network interface. Another example is at the Java* Database Connectivity (JDBC) interface into a database. A relatively straightforward process inserts an interception component into the communication path, allowing for recording and virtualization on a per transaction basis without requiring any direct modification to the code under test. Many situations do not accommodate such a convenient performance of virtualization; one such situation is inside a compiled language program. One possible approach is to add code to perform the interception. This requires code modification and then re-compiling. Making explicit changes to the instruction stream is not ideal, in that it may impact the validity of the test operation; after all, the objective is to determine if the non-instrumented code works. To be effective the record and virtualization should:
• Not require recompilation • Be dynamically installable • Have a low impact on instruction stream
An existing approach currently operates on a transaction boundary for recording and virtualizing, but cannot do so inside a compiled language program. The novel solution use debug technology to dynamically instrument database calls embedded in a compiled language executable. The debugger operates in an automated
mode, without a user interface (UI). The debugger uses breakpoints to gain control before and potentially after every database call. At the pre-call breakpoint location, the debugger references pre-compiled database metadata and the embedded runtime information...