Including Instrumentation And Profiling Patents (Class 717/130)
  • Patent number: 9146832
    Abstract: In one embodiment, a method for providing a debugging functionality embedded in an application supporting an n-tiered architecture includes determining that the debugging functionality embedded in the application is requested, and causing current state information to be presented to a user at each break point in the production environment.
    Type: Grant
    Filed: October 13, 2006
    Date of Patent: September 29, 2015
    Assignee: Oracle International Corporation
    Inventors: Jon Rexford Degenhardt, Sudhakar Kaki, Maria Elisabeth Kaval, Sinfan Tang, Sanjin Tulac, Rahim Mohamed Yaseen
  • Patent number: 9141409
    Abstract: A system, method and computer program product are provided for customizing a core program. In use, a core program is provided. In addition, a plurality of configurable customization layers are provided, each for customizing at least one aspect of the core program or one of the configurable customization layers.
    Type: Grant
    Filed: September 14, 2011
    Date of Patent: September 22, 2015
    Assignee: Amdocs Software Systems Limited
    Inventor: Ram Yonat
  • Patent number: 9134975
    Abstract: Source code of a computer program is compiled by a compiler to generate object code. During compilation of the source code, for each function of the source code compiled, an identifier indicating the function can be entered into a module entry point list. An update for the compiler is received. Responsive to receiving the compiler update, a determination is made, by processing the module entry point list, whether any of the functions of the source code were compiled at least one compiler module to be changed by the compiler update. Responsive to determining that at least one of the functions of the source code was compiled by a compiler module to be changed by the compiler update, a determination is made that the source code of the computer program is a candidate to be recompiled with an updated version of the compiler having the compiler update applied.
    Type: Grant
    Filed: August 22, 2014
    Date of Patent: September 15, 2015
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Thomas A. Beavin, David R. Moy, Terence P. Purcell, John B. Tobler, Nigel G. Slinger
  • Patent number: 9122473
    Abstract: A terminal device that is this program generating device generates program area specifying information that specifies the placement area of an operating program executed by a remote control device. Also, on the basis of the program area specifying information and a program counter value of the remote control device, the terminal device appends a program specifying process that specifies the operating program executed by the remote control device to a measuring program that measures the execution state of the operating program. As a result, there is generated a measuring program that measures changes in the operating state of software in real time while reducing the effect on the operation of the software.
    Type: Grant
    Filed: January 26, 2011
    Date of Patent: September 1, 2015
    Assignee: Mitsubishi Electric Corporation
    Inventors: Makoto Katsukura, Masanori Nakata
  • Patent number: 9117021
    Abstract: Methods, apparatus, systems and articles of manufacture are disclosed to manage concurrent predicate expressions. An example method discloses inserting a first condition hook into a first thread, the first condition hook associated with a first condition, inserting a second condition hook into a second thread, the second condition hook associated with a second condition, preventing the second thread from executing until the first condition is satisfied, and identifying a concurrency violation when the second condition is satisfied.
    Type: Grant
    Filed: March 14, 2013
    Date of Patent: August 25, 2015
    Assignee: Intel Corporation
    Inventors: Justin E. Gottschlich, Cristiano Ligieri Pereira, Gilles Pokam, Youfeng Wu
  • Patent number: 9098701
    Abstract: Provided are an application module injection device, a computing device including an application module injection function, and a recording medium that records a program for executing an application module injection method.
    Type: Grant
    Filed: December 8, 2010
    Date of Patent: August 4, 2015
    Assignee: FASOO.COM CO., LTD
    Inventors: Jong-Young Kim, Jong-II Lee
  • Patent number: 9098267
    Abstract: A profiler may analyze processes being run by a processor. The profiler may include logic to periodically sample a value of an instruction pointer that indicates an instruction in the first process that is currently being executed by the processor and logic to update profile data based on the sampled value. The profiler may additionally include logic to determine, in response to a context switch that includes the operating system switching the active process from the first process to another of the plurality of processes, whether the first process executes for greater than a first length of time; logic to stop operation of the profiler when the first process executes for greater than the first length of time; and logic to clear the profile data when the first process fails to execute for greater than the first length of time.
    Type: Grant
    Filed: December 31, 2012
    Date of Patent: August 4, 2015
    Assignee: Juniper Networks, Inc.
    Inventor: Vijay Paul
  • Patent number: 9092568
    Abstract: A system for automatically instrumenting and tracing an application program and related software components achieves a correlated tracing of the program execution. It includes tracing of endpoints that are the set of functions in the program execution path that the developers are interested. The tracing endpoints and related events become the total set of functions to be traced in the program (called instrument points). This invention automatically analyzes the program and generates such instrumentation points to enable correlated tracing. The generated set of instrumentation points addresses common questions that developers ask when they use monitoring tools.
    Type: Grant
    Filed: April 30, 2013
    Date of Patent: July 28, 2015
    Assignee: NEC Laboratories America, Inc.
    Inventors: Junghwan Rhee, Hui Zhang, Nipun Arora, Guofei Jiang, Kenji Yoshihira, Myoungku Song
  • Patent number: 9092119
    Abstract: Computer software applications presently allow the User to preview the impact of some commands on active documents via a small preview window. However, such preview windows are not representative of how the command will impact the entire document. The invention provides a method and system of efficiently and effectively previewing the impact of User commands on the entire document by executing User commands as they are identified. Leaving the menu open, the User is able to identify successive commands until the desired result is reached. Embodiments are described for execution of general commands, text editing commands, relocations of margins or guidelines, and relocations of graphic objects.
    Type: Grant
    Filed: October 14, 2010
    Date of Patent: July 28, 2015
    Assignee: COREL SOFTWARE LLC
    Inventors: Kevin Unbedacht, Bruce Woodward, Eric Johnson
  • Patent number: 9092577
    Abstract: Test data used in evaluating the performance of a program is generated. First, a source program targeted for performance evaluation, sample data, and a generation parameter used for determining the size of the test data to be generated are received from an input device. A processor then executes the source program using the sample data and obtains the number of executions for each of a plurality of statements in the source program. In addition, on the basis of the obtained number of executions, the processor generates test data having a size that is a multiple of the generation parameter of the sample data size, the test data being such that the frequency of executions for each of the plurality of statements in the source program is the same as the frequency of executions for each of the plurality of statements when executing the source program using the sample data.
    Type: Grant
    Filed: February 2, 2011
    Date of Patent: July 28, 2015
    Assignee: HITACHI, LTD.
    Inventor: Eiichiro Chishiro
  • Patent number: 9087154
    Abstract: A developer analytic module executing on an integrated development environment provides location tracing of a software development toolkit and automatic updated of the SDK. The developer analytic module further provides data container transfer functionality to ensure that analytic logic has access to necessary data containers to perform symbolication and/or error detection.
    Type: Grant
    Filed: August 6, 2012
    Date of Patent: July 21, 2015
    Assignee: Crashlytics, Inc.
    Inventors: Jeffrey H. Seibert, Jr., Wayne Chang, Matthew William Massicotte
  • Patent number: 9075615
    Abstract: Approaches are described for loading code on an electronic device by altering the behavior of an application's classloader. The application can be received at an application store, and the application can be injected with code. The application can be downloaded from the application store and installed on the portable computing device or other device, and in response to starting the application, the injected code can be configured to select classes or other application code, and modify a classpath associated with the application to reference the selected classes or application code.
    Type: Grant
    Filed: October 27, 2014
    Date of Patent: July 7, 2015
    Assignee: AMAZON TECHNOLOGIES, INC.
    Inventor: Samuel S. Gigliotti
  • Patent number: 9069902
    Abstract: In a method of creating a custom action, a user interface is presented for entry of lines of a custom action. In response to receipt of a sub-portion of a line of the custom action via said user interface, the sub-portion is automatically checked for errors in syntax. The custom action is stored as a selectable custom action in a dynamic layer of a testing infrastructure. The dynamic layer of the testing infrastructure is associated with a particular instance of a software item.
    Type: Grant
    Filed: October 12, 2012
    Date of Patent: June 30, 2015
    Assignee: VMware, Inc.
    Inventors: David Gibbens, Mark Tempel, Sean McDonald, Scott Rens
  • Patent number: 9064041
    Abstract: Methods are classified as simple or complex. Complex methods are modified to add a tracer. Methods classified as simple are not modified to add a tracer. There are many different standards that can be used within the spirit of the present invention to classify methods as simple or complex. In one embodiment, a method is complex if it meets three criteria: (1) the method has an access level of public or package; (2) the method is non-synthetic and (3) the method calls at least one other method. Methods that do not satisfy all three criteria are classified as simple methods. In other embodiments, a method can be classified as complex if it satisfies two of the above criteria, or other similar criteria.
    Type: Grant
    Filed: April 8, 2013
    Date of Patent: June 23, 2015
    Assignee: CA, Inc.
    Inventors: Lewis K. Cirne, John B. Bley, Daryl L. Puryear
  • Patent number: 9052909
    Abstract: A data processing apparatus with a processing pipeline, the pipeline including exception control circuitry and error detection circuitry. An exception storage unit is configured to maintain an age-ordered list of entries corresponding to instructions issued to the processing pipeline for execution. The unit is configured to store, in association with each entry, an exception indicator indicating whether the instruction is an exception instruction and whether it has generated an exception and an error indicator indicating whether the instruction has generated an error. The apparatus is configured to indicate to the exception storage unit that an instruction is resolved when processing of the instruction has reached a stage such that it is known whether the instruction will generate an error and whether the instruction will generate an exception; and the exception control circuitry is configured to sequentially retire oldest resolved entries from the list in the exception storage unit.
    Type: Grant
    Filed: December 7, 2011
    Date of Patent: June 9, 2015
    Assignee: ARM Limited
    Inventors: Frederic Claude Marie Piry, Luca Scalabrino, Guillaume Schon, Melanie Emanuelle Lucie Teyssier
  • Patent number: 9052981
    Abstract: A method is implemented in a computer infrastructure having computer executable code tangibly embodied on a computer readable storage medium having programming instructions. The programming instructions are operable to receive a maturity level for an organization and select at least one defect analysis starter/defect reduction method (DAS/DRM) defect profile based on the maturity level. Additionally, the programming instructions are operable to determine a projection analysis for one or more stages of the life cycle of a software code project of the organization based on the at least one DAS/DRM defect profile.
    Type: Grant
    Filed: September 30, 2013
    Date of Patent: June 9, 2015
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Kathryn A. Bassin, Steven Kagan, Susan E. Skrabanek
  • Patent number: 9047147
    Abstract: A computer-implemented method for recording and replaying user sessions in browser based applications includes initiating a user session as a result of a user accessing an application in a web browser. The computer-implemented method also includes attaching an event handler to the application as a replacement for an original event handler. Further, the computer-implemented method includes executing the event handler in response to an event, wherein the event is a plurality of user actions performed during the user session. Furthermore, the computer-implemented method includes receiving the plurality of user actions as inputs to the application. Moreover, the computer-implemented method includes recording the plurality of user actions and replaying the plurality of user actions recorded at a later time.
    Type: Grant
    Filed: June 18, 2013
    Date of Patent: June 2, 2015
    Assignee: Yahoo! Inc.
    Inventor: Steve Francis
  • Patent number: 9047412
    Abstract: The presented enhancement of a rule based instrumentation system taking object oriented inheritance relationships into account is directed to the detection and extraction to inheritance relationships relevant for the instrumentation process. Relevant inheritance relationships which have an impact on the instrumentation process and typically only represent a small fraction of the complete inheritance relationships of a monitored application. The small size of the relevant inheritance relationships allows, for example to prepare it in advance and ship it as part of a monitoring application or to transmit inheritance information between different local instrumentation engines being part of a distributed instrumentation system.
    Type: Grant
    Filed: February 25, 2013
    Date of Patent: June 2, 2015
    Assignee: Dynatrace Corporation
    Inventors: Bernd Greifeneder, Christian Schwarzbauer, Rainer Klaffenbock
  • Patent number: 9047405
    Abstract: User script code that has been developed for execution in a host application can be remapped to debuggable script code, based on explicit debugging gestures, allowing for appropriate debugging coverage for the code while mitigating execution (in)efficiency issues. Capabilities of a virtual machine used for a host application can be determined, and the user script code can be instrumented with guards for detecting explicit debugging gestures based on capabilities of the virtual machine. The instrumented user script code can be executed in a runtime environment, for example, by a just-in-time compilation service. If an explicit debugging gesture is detected, a function where the gesture was detected can be transformed into debuggable script code, in one embodiment, based on the debuggable gesture detected.
    Type: Grant
    Filed: August 10, 2012
    Date of Patent: June 2, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Jonathon Michael Stall, Anthony L. Crider, Igor A Zinkovsky, James Hugunin
  • Patent number: 9043748
    Abstract: Graphical programming or modeling environments in which a coding standard can be applied to graphical programs or models are disclosed. The present invention provides mechanisms for applying the coding standard to graphical programs/models in the graphical programming/modeling environments. The mechanisms may detect violations of the coding standard in the graphical model and report such violations to the users. The mechanisms may automatically correct the graphical model to remove the violations from the graphical model. The mechanisms may also automatically avoid the violations in the simulation and/or code generation of the graphical model.
    Type: Grant
    Filed: January 29, 2013
    Date of Patent: May 26, 2015
    Assignee: The MathWorks, Inc.
    Inventor: Peter Szpak
  • Publication number: 20150143342
    Abstract: Aspects of the subject matter described herein relate to software validation. In aspects, a baseline may be created by instrumenting code of a software application or runtime, executing the code of the software application a plurality of times to generate a plurality of logs, determining invariant characteristics of the logs, and writing the invariant characteristics to a baseline. When a new version of the software application or runtime is created, the new version may be validated by instrumenting the code of the new version or runtime, executing the code of the new version, and comparing the log generated with the baseline.
    Type: Application
    Filed: November 15, 2013
    Publication date: May 21, 2015
    Applicant: Microsoft Corporation
    Inventors: Dinesh B. Chandnani, Erfan Ghazi Nezami, Ritesh R. Parikh
  • Patent number: 9032369
    Abstract: Certain example embodiments relate to systems and/or methods for determining and/or executing an appropriate subset of tests in response to a code change. In certain example embodiments, hash digests or other unique values for code structures (such as, for example, classes, methods, and/or other structural elements) may be created. Tests associated those associated code structures may be identified. New hash digests or other unique values may be generated for the code structures after the source code has been modified. In response to a mismatch as between the existing and new hash digests or other unique values, a list of associated tests for possible subsequent execution may be retrieved. Certain example embodiments additionally or alternatively provide an incremental but consistent way of analyzing performance issues, e.g., in connection with a profiler.
    Type: Grant
    Filed: March 26, 2012
    Date of Patent: May 12, 2015
    Assignee: Software AG
    Inventors: Balaji Balakrishnan, Vasudeva Rao Kothamasu, Gary Woods
  • Patent number: 9026720
    Abstract: The invention provides a technique for managing write operations issued to a non-volatile memory included in a wireless device. A monitor software application executes on the wireless device and is configured to determine that a number of write operations issued to the non-volatile memory is greater than or equal to a write operation threshold associated with the non-volatile memory. In response, at least one application is isolated as the application responsible for issuing excessive write operations. The isolation can be carried out locally on the wireless device, or the isolation can be carried out remotely at a server by sending information about the write operations to the server. The monitor then limits additional write operations from being issued to the non-volatile memory so as to protect the non-volatile memory from becoming corrupted or inoperable.
    Type: Grant
    Filed: February 7, 2013
    Date of Patent: May 5, 2015
    Assignee: Apple Inc.
    Inventors: Li Li, Ben-Heng Juang, Arun G. Mathias
  • Patent number: 9027000
    Abstract: A method to measure the performance of an Application Programming Interface (API) includes selecting a target API and tracking memory allocation for the functional calls of the selected API to generate a list of functions called by the API. The individual functions are then called within the API in isolation and timing and memory allocation data for each are collected and recorded. The recorded results are then bucketized according to a log base 2 method and made accessible by API users to indicate the performance of specific APIs.
    Type: Grant
    Filed: January 11, 2011
    Date of Patent: May 5, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Nicholas Guerrera, Rico Mariani, Michael C. Fanning, Jan Stephen Gray
  • Patent number: 9027132
    Abstract: A system, method and computer program product are provided. In use, execution of a portion of internal code of an interface is identified. Further, in response to the execution of the portion of internal code, at least one aspect of an invocation of the interface is monitored and/or analyzed.
    Type: Grant
    Filed: September 30, 2013
    Date of Patent: May 5, 2015
    Assignee: McAfee, Inc.
    Inventor: Gregory William Dalcher
  • Patent number: 9027006
    Abstract: A method and an apparatus to execute a code with value profiling are described. The code may include an access to an untyped variable. During the execution, runtime values of the untyped variable may be randomly inspected. A value profile may be established to predict one or more expected types of future runtime values for the untyped variable. The code may be recompiled according to the value profile to optimize the access of the untyped variable for the future runtime values.
    Type: Grant
    Filed: August 23, 2012
    Date of Patent: May 5, 2015
    Assignee: Apple Inc.
    Inventors: Filip J. Pizlo, Gavin Barraclough
  • Patent number: 9021428
    Abstract: Tools and techniques support troubleshooting live application visuals, including transient markup expression issues in XAML or HTML. A LADRT module supports troubleshooting without pausing application execution to help inspect and modify visual construct properties, and to identify and alter source code pertaining to a selected visual construct. Changes are serialized back to the application program source code and reflected in real time in the executing application, without a rebuild. Markup annotation preserves pre-evaluation versions of markup expressions for binding, static resource identification, and custom purposes. Markup annotation also correlates visual constructs and source code. The LADRT module operates independently of debuggers, and may autoload with the application. Program project and source code changes are not required for troubleshooting capability.
    Type: Grant
    Filed: May 29, 2013
    Date of Patent: April 28, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Harikrishna Menon Ajith Kumar, Kenneth Lawrence Young, Unnikrishnan Ravindranathan, Christian Schormann
  • Patent number: 9021446
    Abstract: Indication of uncoverage information allows tests to be tailored to target those uncovered code units with the most potential to increase coverage of a program. A tool examines coverage information of a program to identify code units of the program that were not covered by test data used to exercise the program. The tool also examines structural information (e.g., control flow) for the program to identify those of the uncovered code units that have direct control flow from a corresponding covered code unit (“root level uncovered code units”). The coverage tool then measures potential impact on coverage for each of the root level uncovered code units.
    Type: Grant
    Filed: June 28, 2006
    Date of Patent: April 28, 2015
    Assignee: Oracle America, Inc.
    Inventors: Raj Prakash, Chester M. Wood
  • Patent number: 9021448
    Abstract: A technique for detecting patterns in the execution of an application. The technique identifies a sequence of methods which are invoked and obtains information regarding attributes of the methods. For example, attribute information such as a class hierarchy can be obtained from an instrumentation API. A data structure representing a hierarchy of the attributes can be created and compared to one or more reference data structures which describe patterns of interest. A decision can be made to provide instrumentation for the methods having the matching attributes. The decision can consider how frequently the pattern is detected and overhead costs of the instrumentation.
    Type: Grant
    Filed: February 28, 2013
    Date of Patent: April 28, 2015
    Assignee: CA, Inc.
    Inventors: Marco Gagliardi, Andreas Reiss
  • Patent number: 9021447
    Abstract: A tracing system may divide trace objectives across multiple instances of an application, then deploy the objectives to be traced. The results of the various objectives may be aggregated into a detailed tracing representation of the application. The trace objectives may define specific functions, processes, memory objects, events, input parameters, or other subsets of tracing data that may be collected. The objectives may be deployed on separate instances of an application that may be running on different devices. In some cases, the objectives may be deployed at different time intervals. The trace objectives may be lightweight, relatively non-intrusive tracing workloads that, when results are aggregated, may provide a holistic view of an application's performance.
    Type: Grant
    Filed: February 12, 2013
    Date of Patent: April 28, 2015
    Assignee: Concurix Corporation
    Inventors: Russell S. Krajec, Ying Li
  • Patent number: 9021593
    Abstract: The present invention discloses a XSS detection method for detecting the XSS vulnerabilities in a web page, comprising for each parameter-value pair in a set of parameter-value pairs that can be accepted by the web page: constructing a parameter-value pair in which a dedicated script is inserted; assembling a URL corresponding to the web page based on the parameter-value pair in which a dedicated script is inserted; acquiring the dynamic web page content corresponding to the assembled URL; and simulating the execution of the acquired dynamic web page content, if the dedicated script is executed, it is determined that the processing of the parameter in the web page contains XSS vulnerabilities. The present invention further discloses a corresponding XSS detection device and a web site security scanning system and a web scanning system using such a device.
    Type: Grant
    Filed: July 23, 2010
    Date of Patent: April 28, 2015
    Assignee: NSFOCUS Information Technology Co., Ltd.
    Inventors: Guangxu Liu, Yujie Wen, Da Zhou, Xiaoming Wang, Xiaoxia Liu
  • Patent number: 9013574
    Abstract: A machine vision system program editing environment including synchronized selection and/or identification of related features in a plurality of different user interface windows is provided. In particular, one of the windows is an editing window where a part program representation is displayed for editing by a user. In one embodiment, a user may select data or another feature of interest in a window that is not the editing window (e.g., a results window, or graphical workpiece inspection feature display window) and the associated part program instruction representation is automatically highlighted and/or selected in the editing window. Conversely, a part program instruction representation may be selected by a user in the editing window and the associated results or feature in another window is automatically highlighted and/or selected. User interface navigation, rapid program quality assessment, and overall part program creation and editing efficiency are significantly enhanced in such an editing environment.
    Type: Grant
    Filed: November 13, 2012
    Date of Patent: April 21, 2015
    Assignee: Mitutoyo Corporation
    Inventors: Barry Saylor, Ryan Northrup, Akira Takada, Kozo Ariga
  • Patent number: 9015668
    Abstract: A first software agent is used to intercept first data sent to a first software component from a second software component during a test of a particular software system, each of the first and second software components included in a plurality of software components that are included in the particular software system. The first agent is used to determine that a particular value of the intercepted first data is different from one or more preferred values for the first data. Substitute data having a preferred value is passed to the first software component in lieu of the intercepted data.
    Type: Grant
    Filed: August 10, 2011
    Date of Patent: April 21, 2015
    Assignee: Interactive TKO, Inc.
    Inventor: John J. Michelsen
  • Publication number: 20150106793
    Abstract: An approach is provided in which an endianness violation detection sub-system detects endianness violations between hardware units. The endianness violation detection sub-system tracks memory operations performed by multiple hardware units via debug channels and generates lookup table entries that are stored in a lookup table. When the endianness violation detection sub-system detects endianness relevant load attributes of a load operation that are different than corresponding endianness relevant store attributes of a store operation, the endianness violation detection sub-system generates an endianness violation. In one embodiment, the endianness violation detection sub-system identifies an endianness violation when the endianness violation detection sub-system detects a difference in the byte ordering type between a hardware unit performing a store operation and a hardware unit performing a load operation.
    Type: Application
    Filed: October 15, 2013
    Publication date: April 16, 2015
    Inventors: Brian C. Kahne, John H. Arends, Richard G. Collins, James C. Holt
  • Patent number: 9009679
    Abstract: Embodiments of the invention include a method for setting snapshots in code. The method may occur during the debug of code and may include determining whether to place a snapshot instruction immediately before a machine instruction within a module. The determination may include analyzing parameters associated with the machine instruction.
    Type: Grant
    Filed: June 28, 2012
    Date of Patent: April 14, 2015
    Assignee: International Business Machines Corporation
    Inventors: Cary L. Bates, Kendrick Wong
  • Patent number: 9009680
    Abstract: Instrumentation points are selected for an application by running the application with comprehensive instrumentation of its components in a development mode. The application can be run by a human operator and/or load simulator which provides requests to the application. The instrumented components are monitored as the application runs. A subset of the components is selected based on criteria such as an order in which the instrumented components are invoked, whether resource utilization, such as consumption of processor cycles, exceeds a threshold, or a frequency with which components are called or call other components, and only that subset is instrumented in a production mode of the application. In one approach, the subset includes components which are invoked when traffic to/from the application matches a pattern provided by an interaction model. As a result, relevant instrumentation points can be identified.
    Type: Grant
    Filed: December 18, 2006
    Date of Patent: April 14, 2015
    Assignee: CA, Inc.
    Inventors: Jeffrey R. Cobb, Daryl L. Puryear, Ling Thio
  • Patent number: 9009670
    Abstract: Various embodiments enable automated testing of Application Program Interfaces (APIs) by abstracting API call signatures and processing the abstracted API call signatures utilizing one or more genetic algorithms. Utilizing the inventive approach, test cases are built and then analyzed using a genetic algorithm. This can be done to both identify problems, such as bugs, associated with the APIs, and/or to identify quality improvements.
    Type: Grant
    Filed: July 8, 2011
    Date of Patent: April 14, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Andrew M. Precious, Thomas A. Walton, Anish Swaminathan
  • Patent number: 9009681
    Abstract: Program execution profile data is collected by direct measurement of some code paths, and by inferring data for unmeasured paths. The data collection process may cause errors, which are propagated by the inferencing process. The profile data thus constructed is further enhanced by detecting certain data mismatches, and adjusting inferred data to reduce the scope of errors propagated during the inferencing process. Preferably, a control flow graph of the program being measured is constructed. Mismatches in the total weights of input arcs versus output arcs are detected. For certain specific types of mismatches, it can be known or guessed which count is incorrect, and this count is accordingly corrected. Correction of arc counts proceeds recursively until it is no longer possible to correct mismatches. Additionally, certain other conditions are adjusted as presumed inaccuracies.
    Type: Grant
    Filed: August 23, 2012
    Date of Patent: April 14, 2015
    Assignee: International Business Machines Corporation
    Inventor: William Jon Schmidt
  • Patent number: 9009678
    Abstract: Software debugging with execution match determinations, including: inserting, by a compiler while compiling source code into a debuggable program, a phantom breakpoint at every line of source code; including in the debuggable program, by the compiler, a breakpoint handling module and an exit handler; executing the debuggable program including encountering one or more of the phantom breakpoints and removing, by the breakpoint handling module, each encountered phantom breakpoint; creating, by the exit handler, upon exiting execution of the debuggable program, a copy of the debuggable program that includes only phantom breakpoints not encountered during execution; and providing the copy of the debuggable program to a debugger.
    Type: Grant
    Filed: June 28, 2011
    Date of Patent: April 14, 2015
    Assignee: International Business Machines Corporation
    Inventor: Cary L. Bates
  • Patent number: 9003377
    Abstract: Unsuspended co-routines are handled by the machine call stack mechanism in which the stack grows and shrinks as recursive calls are made and returned from. When a co-routine is suspended, however, additional call stack processing is performed. A suspension message is issued, and the entire resume-able part of the call stack is removed, and is copied to the heap. A frame that returns control to a driver method (a resumer) is copied to the call stack so that resumption of the co-routine does not recursively reactivate the whole call stack. Instead the resumer reactivates only the topmost or most current frame called the leaf frame. When a co-routine is suspended, it does not return to its caller, but instead returns to the resumer that has reactivated it.
    Type: Grant
    Filed: January 7, 2010
    Date of Patent: April 7, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Neal M. Gafter, Mads Torgersen, Henricus Johannes Maria Meijer, Niklas Gustafsson
  • Patent number: 9003378
    Abstract: Systems, methods, and computer readable media for collecting run-time error information for an executing script through the use of a double code-injection technique are described. A first native code injection into a user's client-side application (e.g., a browser application) is made. The second injection is thereafter made by the user's client-side application itself (when the first injected program code is executed) into the application's associated scripting engine and only when a script error has been detected. The second injected program code or scripts collect detailed run-time script error information within the context of the application's scripting engine. The second injected program code can then return the collected error information to the user application's context where it may be provided to a debug tool or recorded for later review (by the first injected program code).
    Type: Grant
    Filed: December 14, 2010
    Date of Patent: April 7, 2015
    Assignee: BMC Software, Inc.
    Inventors: Daniel Liberty, Moshe Kravchik
  • Patent number: 9003233
    Abstract: In accordance with aspects of the disclosure, systems and methods are provided for monitoring one or more classes for detecting suspected memory leaks in a production environment. The systems and methods may include identifying which of the one or more classes hold at least one static or non-static field of collection or array type, accessing the one or more classes that hold the at least one static or non-static fields of collection or array type, and tracking a size for each field of each class by periodically sampling the size of each field over an interval, processing the size data for each field of each class, and detecting suspected memory leaks of each class by identifying which of the one or more fields of each class exhibits suspect behavior in the size over the interval.
    Type: Grant
    Filed: December 31, 2012
    Date of Patent: April 7, 2015
    Assignee: BMC Software, Inc.
    Inventors: Gilad Arbel Komissar, Eyal Koren, Asaf Dafner
  • Patent number: 9003355
    Abstract: Systems, methods and computer program products are disclosed that provide a decentralized workflow management system based on an enterprise componentized workflow application (ECWA). In some embodiments, the system includes self-contained components configured for process management, each component including a processor, a memory, and a set of instructions stored in the memory. The loosely-coupled components, with encapsulation, are plug-in configurable, JMX controlled, and throttle and safety enabled. Each component receives a responsibility injection and a capability injection, defining roles and abilities for the components, in order to accomplish business processes. The components define independently-deployed system nodes connected via communication conduits. The ECWA components provide an environment for decentralized workflow management that extends the BPMN model. The system unifies flow-oriented modeling and context-oriented architecture.
    Type: Grant
    Filed: February 20, 2013
    Date of Patent: April 7, 2015
    Assignee: Bank of America Corporation
    Inventors: Narasimha Rao Meda, Athar Syed, Shyaam Sundar Neelam, Zhu Yifei, Deborah A. Copes
  • Patent number: 9003367
    Abstract: A computing system for converting software code into an executable program include an expanding preprocessor that receives software code including debug statements and expands the debug statements into conditions that include a static variable and that must be met before a trace contained in the statement is executed, the expanding preprocessor creating an expanded code output. The system also includes a replacement preprocessor coupled to the expanding preprocessor and receiving the expanded code, the replacement preprocessor forming replaced code by replacing one or more occurrences of the static variables with a unique variable name and a compiler that compiles the replacement code to create an executable.
    Type: Grant
    Filed: May 11, 2009
    Date of Patent: April 7, 2015
    Assignee: International Business Machines Corporation
    Inventors: Yoonho Park, Philippe L. Selo
  • Patent number: 9003379
    Abstract: Systems and methods for generating test information from a source code are described. One of the methods includes accessing the source code. The method further includes receiving a modification of the source code to generate a modified source code. The modification includes one or more instructions that do not affect functions performed by executing the source code. The modification further includes one or more instructions for generating test information regarding each executable line of the source code.
    Type: Grant
    Filed: December 12, 2011
    Date of Patent: April 7, 2015
    Assignee: Zynga Inc.
    Inventor: Aleksandr Kuzmin
  • Publication number: 20150095894
    Abstract: Testing computer software applications is performed by identifying first and second executable portions of the computer software application, where the portions are configured to access a data resource, and where at least one of the portions is configured to write to the data resource, instrumenting the computer software application by inserting one or more instrumentation instructions into one or both of the portions, where the instrumentation instruction is configured to cause execution of the portion being instrumented to be extended by a randomly-determined amount of time, and testing the computer software application in multiple iterations, where the computer software application is executed in multiple parallel execution threads, where the portions are independently executed at least partially in parallel in different threads, and where the computer software application is differently instrumented in each of the iterations.
    Type: Application
    Filed: September 30, 2013
    Publication date: April 2, 2015
    Applicant: International Business Machines Corporation
    Inventor: Omer Tripp
  • Patent number: 8997065
    Abstract: A device creates a graph based on source code, and analyzes the source code to identify private variables and functions of the source code and public variables and functions of the source code. The device determines, based on the graph, a size threshold and semantics-related characteristics of functions and variables for each module, of multiple modules, and assigns, based on the graph, the private variables and functions to a corresponding module of the multiple modules. The device reduces, based on the graph, a number of the public variables and functions assigned to each module, and generates the multiple modules based on one or more of the graph, the size threshold, the assigned private variables and functions, and the number of the public variables and functions assigned to each module.
    Type: Grant
    Filed: December 3, 2012
    Date of Patent: March 31, 2015
    Assignee: The MathWorks, Inc.
    Inventors: Michael E. Karr, Gael Mulat
  • Patent number: 8997061
    Abstract: Systems and methods are described that schedule tests based on historical test information, such as tests that validate developed or changed code. For example, the system may review the results of previously used tests, order the tests based on the results, such as based on the performance of the code during the test, and apply the tests during a testing cycle based on the order.
    Type: Grant
    Filed: May 2, 2008
    Date of Patent: March 31, 2015
    Assignee: Teradata US, Inc.
    Inventor: Steven John Davison
  • Patent number: 8997057
    Abstract: Methods for identifying and analyzing performance traces are provided. Temporal logic formulas are patterns that can be compared with traces and individual events to identify the existence of certain behavior. Traces, sequences of time-stamped events in time order, are compared with one or more temporal logic formulas to identify the event sequences that match the formulas. The temporal logic formulas can be written in the simple temporal logic language that is presented. When a formula matches an event sequence, attributes from the event sequence are extracted and metric expressions are evaluated based on these attributes. The extracted attributes and the results of the metric expression are returned. This temporal logic pattern matching process can efficiently identify and analyze performance traces and significantly reduce manual effort for identifying performance problems.
    Type: Grant
    Filed: May 3, 2012
    Date of Patent: March 31, 2015
    Assignee: Google Inc.
    Inventors: Amer Diwan, Frederick Ryckbosch, Richard Lee Sites
  • Patent number: 8997048
    Abstract: One embodiment of the present invention provides a system for profiling a virtual machine on an embedded device. During operation, the system receives an operation-request at a system-level profiler from a virtual machine on an embedded device. The system then records the operation-request in a system-level log. Next, the system sends the operation-request to a native layer on the embedded device. Then, the system receives an operation-response associated with the operation-request from the native layer. The system then records the operation-response in the system-level log. Next, the system sends the operation-response to the virtual machine, thereby facilitating logging of interactions between the virtual machine and the native layer. Note that logging interactions between the virtual machine and the native layer facilitates emulation of the platform independent virtual machine on a second device.
    Type: Grant
    Filed: February 14, 2007
    Date of Patent: March 31, 2015
    Assignee: Oracle America, Inc.
    Inventors: Omer Pomerantz, David Glushko, Ami Navon