Including Instrumentation And Profiling Patents (Class 717/130)
  • Patent number: 8881115
    Abstract: Debugging source code includes: tracking, by a debugger during a debug session, duration of user examination of source code locations; providing, by the debugger to an optimizing compiler, a source code examination profile specifying source code locations examined by the user during the debug session; and receiving, by the debugger from the optimizing compiler: compiled source code for debugging, the compiled source code comprising, at each of one or more source code locations specified in the source code examination profile: a snapshot before the source code of the source code location, followed by an expanded snapshot, the expanded snapshot including computer program instructions to enable, during a debug session, examination of variable values changing during execution of the source code at the source code location; and a recording of snapshot locations and expanded snapshot locations.
    Type: Grant
    Filed: April 17, 2012
    Date of Patent: November 4, 2014
    Assignee: International Business Machines Corporation
    Inventors: Cary L. Bates, Justin K. King, Lee Nee
  • Publication number: 20140325489
    Abstract: A method of analyzing a software program includes compiling the software program into an intermediate representation. The method also includes finding an instruction in the intermediate representation that matches a pattern in a check pattern. The method also includes generating an instrumented intermediate representation in which the instruction is modified according to an action specified in the check pattern. The method also includes symbolically executing the instrumented intermediate representation.
    Type: Application
    Filed: April 30, 2013
    Publication date: October 30, 2014
    Applicant: FUJITSU LIMITED
    Inventor: Hiroaki YOSHIDA
  • Patent number: 8875108
    Abstract: A method of detecting a bottleneck in a data flow program includes executing the data flow program, wherein the data flow program comprises a kernel, determining a percentage of time the kernel spends on a computation, and determining the kernel to be a bottleneck upon comparing the percentage of time the kernel spends on the computation to a condition.
    Type: Grant
    Filed: January 12, 2012
    Date of Patent: October 28, 2014
    Assignee: International Business Machines Corporation
    Inventors: Yoonseo Choi, Cheng-Hong Li
  • Patent number: 8875106
    Abstract: A method, computer program product, and system for automating a test environment is provided. The method may include providing, at one or more computing devices, a superclass and a class-under-test, the superclass and the class-under-test having an inheritance chain therebetween. The method may further include inserting, via the computing device, an intermediate mock class between the superclass and the class-under-test. The method may also include automatically modifying, via the computing device, the class-under-test at runtime.
    Type: Grant
    Filed: March 30, 2012
    Date of Patent: October 28, 2014
    Assignee: International Business Machines Corporation
    Inventors: Mauro Arcese, Marco Imperia, Marco Mattia, Genoveffa Nacchia, Leonardo Rosati, Stefano Sidoti
  • Publication number: 20140317747
    Abstract: An exemplary method includes performing a first static analysis to locate elements within a program and instrumenting the program to enable a subsequent dynamic analysis based on the located elements. The method includes executing the instrumented program and performing during execution analysis to determine individual sets of statements in the program affected by a corresponding element. The method includes partitioning the sets of statements into partitions based on one or more considerations, each partition including one or more of the elements. The method includes performing a second static analysis on the partitions of the program to produce results and outputting the results. The method may be performed for, e.g., security (e.g., taint) analysis, buffer overflow analysis, and typestate analysis. Apparatus and program products are also disclosed.
    Type: Application
    Filed: April 17, 2013
    Publication date: October 23, 2014
    Applicant: International Business Machines Corporation
    Inventors: Omer Tripp, Marco Pistoia, Salvatore A. Guarnieri
  • Publication number: 20140317748
    Abstract: An exemplary apparatus and computer program product are disclosed which employ a method that includes performing a first static analysis to locate elements within a program and instrumenting the program to enable a subsequent dynamic analysis based on the located elements. The method includes executing the instrumented program and performing during execution analysis to determine individual sets of statements in the program affected by a corresponding element. The method includes partitioning the sets of statements into partitions based on one or more considerations, each partition including one or more of the elements. The method includes performing a second static analysis on the partitions of the program to produce results and outputting the results. The method may be performed for, e.g., security (e.g., taint) analysis, buffer overflow analysis, and typestate analysis.
    Type: Application
    Filed: September 12, 2013
    Publication date: October 23, 2014
    Applicant: International Business Machines Corporation
    Inventors: Salvatore A. Guarnieri, Marco Pistoia, Omer Tripp
  • Patent number: 8869118
    Abstract: System aware performance counters including a processor for performing a method that includes executing a predefined code segment of an application, the executing on a processor. The executing includes executing an instrumented thread included in the predefined code segment. The method includes performing a first action associated with executing the instrumented thread in the predefined code segment, and registering the instrumented thread. A performance counter associated with the predefined code segment is started. Also, the execution of the predefined code segment is paused and the performance counter is paused. The method further includes performing a second action associated with pausing the executing of the predefined code segment. The executing of the predefined code segment is resumed and the performance counter is resumed responsive to resuming the executing of the predefined code segment. Also, a third action associated with resuming executing the predefined code segment is performed.
    Type: Grant
    Filed: June 1, 2011
    Date of Patent: October 21, 2014
    Assignee: International Business Machines Corporation
    Inventors: Raymond M. Higgs, George P. Kuch, Bruce H. Ratcliff
  • Patent number: 8863094
    Abstract: Provided are techniques for receiving an error inject script that describes one or more error inject scenarios that define under which conditions at least one error inject is to be executed and compiling the error inject script to output an error inject data structure. While executing code that includes the error inject, an indication that an event has been triggered is received, conditions defined in the one or more error inject scenarios are evaluated using the error inject data structure, and, for each of the conditions that evaluates to true, one or more actions defined in the error inject script for the condition are performed.
    Type: Grant
    Filed: May 18, 2010
    Date of Patent: October 14, 2014
    Assignee: International Business Machines Corporation
    Inventor: Cheng-Chung Song
  • Patent number: 8863091
    Abstract: A computer is programmed with multiple software programs to record structures including (a) unstructured information to denote a transition between portions of code, and (b) metadata related to one or more attributes of the information. In addition, the computer writes two additional types of structures: section type, and dump type. The section type structure has metadata to indicate a beginning and an end, to bracket a group of structures located therebetween. The dump type has a dump header and a dump body. The dump header includes a symbol to indicate it's of dump type. The dump body is a set of values of an object used by the software program(s) during execution by the computer. A group of structures, within a section type, may include structures of each of the trace record type, dump type and section type.
    Type: Grant
    Filed: August 8, 2008
    Date of Patent: October 14, 2014
    Assignee: Oracle International Corporation
    Inventors: Benoit Dageville, Amirali S. Valiani, Hailing Yu, Gary Ngai
  • Patent number: 8863089
    Abstract: Analysis data from the execution of a computer program is collected. The analysis data may include samples of two different types of performance data from the execution of the computer program. Performance data may include sampled hardware performance counter data and sampled executing functions. The performance data is used to create a composite view of the data. The composite view may allow a user to efficiently correlate the different types of performance data by using a colored visual display.
    Type: Grant
    Filed: May 5, 2011
    Date of Patent: October 14, 2014
    Assignee: Nintendo Co., Ltd.
    Inventors: Steve Rabin, Chad Hinkle
  • Patent number: 8863093
    Abstract: A method to instrument program code for a virtual machine that comprises, in the course of loading a class to a virtual machine, adding code to the class to declare a field that corresponds to a field declared in a first bootstrap class.
    Type: Grant
    Filed: March 6, 2009
    Date of Patent: October 14, 2014
    Assignee: Coverity, Inc.
    Inventors: Andy Chou, John Kodumal
  • Publication number: 20140304688
    Abstract: A method and system for generating and processing test cases for effective black box testing of software applications is provided. Test cases are automatically generated based on parameters that are identified from automated manual test cases associated with business models. The generated automated test cases cover one or more paths in the business models. Further, the automated test cases are optimized by determining minimal path covered by the automated test cases in the business models. The optimization is performed based on analysis of the one or more paths covered by the automated test cases in the business models. Furthermore, code coverage data of the optimized test cases are obtained by execution of the optimized test cases. Finally, based on the code coverage data and predetermined conditions, the optimized test cases are analyzed for at least prioritization and further optimization of the optimized test cases for effective black box testing.
    Type: Application
    Filed: June 23, 2014
    Publication date: October 9, 2014
    Inventors: Anant Ramdev Bhat, Giripriya MeenakshiSundaram, Naveen Kumar
  • Patent number: 8856753
    Abstract: Processor performance in executing a section of software code is measured. A clock associated with the section of software code. It is detected that the section of software code is beginning to be executed. In response, the clock associated with the section of software code is started. It is then detected that the section of software code is no longer being executed. In response, the clock associated with the section of software code is stopped. The clock is stopped and restarted as the section of software code temporarily stops execution to cede control to other sections of software code. Ultimately, a value of the clock associated with the section of software code is output, where the value corresponds to the processor performance in executing the section of software code.
    Type: Grant
    Filed: April 18, 2008
    Date of Patent: October 7, 2014
    Assignee: International Business Machines Corporation
    Inventor: Gopikrishnan Varadarajulu
  • Patent number: 8850402
    Abstract: Methods, systems, and products for determining performance of a software entity running on a data processing system. The method comprises allowing extended execution of the software entity without monitoring code. The method also comprises intermittently sampling behavior data for the software entity. Intermittently sampling behavior data may be carried out by injecting monitoring code into the software entity to instrument the software entity, collecting behavior data by utilizing the monitoring code, and removing the monitoring code. The method also comprises repeatedly performing iterations of the allowing and sampling steps until collected behavior data is sufficient for diagnosing performance of the software entity. The method may further comprise analyzing the collected behavior data to diagnose performance of the software entity.
    Type: Grant
    Filed: May 22, 2009
    Date of Patent: September 30, 2014
    Assignee: International Business Machines Corporation
    Inventors: Randall Ray Heisch, Bret Ronald Olszewski
  • Patent number: 8850403
    Abstract: Implementations of the present disclosure provide methods including executing a profiling session to profile one or more applications running on a virtual machine executed on a server, collecting profiling data over a first time interval during the profiling session, receiving user input generated at a client device, the client device being in communication with the server, in response to the user input, generating a snapshot corresponding to a subset of the profiling data, the snapshot being identified based on a second time interval that is within the first time interval, and transmitting the profiling data to generate a snapshot view for display on a client device, the snapshot view corresponding to the subset of the profiling data.
    Type: Grant
    Filed: December 4, 2009
    Date of Patent: September 30, 2014
    Assignee: SAP AG
    Inventors: Michael Wintergerst, Dietrich Mostowoj, Ralf Schmelter
  • Patent number: 8849985
    Abstract: A system and method for on-the-fly instrumentation of a rich Web-site is disclosed herein. On a server-side, a plurality of objects of an HTML page are modified by adding additional instrumentation code and attributes to create a modified HTML page, which is served to a client-side.
    Type: Grant
    Filed: December 1, 2008
    Date of Patent: September 30, 2014
    Assignee: Appcelerator, Inc.
    Inventors: Paul Colton, Uri Sarid, Kevin Edward Lindsey
  • Patent number: 8843932
    Abstract: Execution of a computer program on a multiprocessor system is monitored to detect possible excess parallelism causing resource contention and the like and, in response, to controllably limit the number of processors applied to parallelize program components.
    Type: Grant
    Filed: January 12, 2011
    Date of Patent: September 23, 2014
    Assignee: Wisconsin Alumni Research Foundation
    Inventors: Gurindar S. Sohi, Srinath Sridharan, Gagan Gupta
  • Patent number: 8843901
    Abstract: A tracing system may perform cost analysis to identify burdensome or costly trace objectives. For a burdensome objective, two or more objectives may be created that can be executed independently. The cost analysis may include processing, storage, and network performance factors, which may be budgeted to collect data without undue performance or financial drains on the application under test. A larger objective may be recursively analyzed to break the larger objective into smaller objectives which may be independently deployed.
    Type: Grant
    Filed: February 12, 2013
    Date of Patent: September 23, 2014
    Assignee: Concurix Corporation
    Inventors: Russell S. Krajec, Ying Li
  • Patent number: 8843898
    Abstract: A method and apparatus for identifying a minimum call tree data structure from a plurality of call tree data structures are provided. With the apparatus and method, call tree data structures are generated for two or more executions of a build of a computer program. The apparatus and method perform a “tree-minimization” operation in which the two or more call trees generated during runs of the computer program are walked and only those nodes that are present in each of the tree data structures are maintained in a minimized tree data structure. In addition, the minimum values for these common nodes are maintained in the minimized tree data structure. In this way, asynchronous events are removed from the minimum tree data structure and analysis may focus on those areas of the computer program that are consistent between runs of the computer program.
    Type: Grant
    Filed: August 14, 2012
    Date of Patent: September 23, 2014
    Assignee: International Business Machines Corporation
    Inventors: William P. Alexander, III, Robert T. Dimpsey, Frank E. Levine, Robert J. Urquhart
  • Patent number: 8843909
    Abstract: A method for transforming a procedural program having procedural language code into an object-oriented distributed software program is provided. A procedural program is transformed into intermediate client-server code. The intermediate client-server code is partitioned into an N-tier application program.
    Type: Grant
    Filed: July 8, 2004
    Date of Patent: September 23, 2014
    Assignee: CA, Inc.
    Inventors: David L. Tondreau, Jr., John P. Mahony
  • Publication number: 20140282431
    Abstract: Embodiments provide systems, methods, and computer program products for dynamically hooking multiple levels of application code. A server receives identifying information that identifies a target function of a target application to hook. The server pauses a target process of the target application. The server locates the target function within the target application code based on the received identifying information. The server then hooks the located function outside of the target application, thereby creating hooked code during application runtime.
    Type: Application
    Filed: March 14, 2014
    Publication date: September 18, 2014
    Applicant: Riverbed Technology, Inc.
    Inventor: John J. DELIO, JR.
  • Publication number: 20140282430
    Abstract: The current application is directed to crosscutting functionalities, including byte-code instrumentation, error logging, and other such crosscutting functionalities. These crosscutting functionalities generally violate, or run counter to, modern code-development strategies and programming-language features that seek to partition logic into hierarchically organized compartments and modules with related functionalities, attribute values, and other common features. In particular, the current application is directed to byte-code instrumentation introduced into a computer program for collecting data, such as execution traces, elapsed times for routine execution, and other information at run time for logging and subsequently manual, semi-automatic, or automatic analysis. The current application is particularly directed to byte-code instrumentation that automatically filters collected data in order to log only data having greatest value for subsequent analysis.
    Type: Application
    Filed: March 14, 2013
    Publication date: September 18, 2014
    Applicant: Pivotal Software, Inc.
    Inventors: John Victor Kew, Jonathan Travis
  • Publication number: 20140282429
    Abstract: Algorithm selection for collective operations in a parallel computer that includes a plurality of compute nodes may include: profiling a plurality of algorithms for each of a set of collective operations, including for each collective operation: executing the operation a plurality times with each execution varying one or more of: geometry, message size, data type, and algorithm to effect the collective operation, thereby generating performance metrics for each execution; storing the performance metrics in a performance profile; at load time of a parallel application including a plurality of parallel processes configured in a particular geometry, filtering the performance profile in dependence upon the particular geometry; during run-time of the parallel application, selecting, for at least one collective operation, an algorithm to effect the operation in dependence upon characteristics of the parallel application and the performance profile; and executing the operation using the selected algorithm.
    Type: Application
    Filed: March 13, 2013
    Publication date: September 18, 2014
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: INTERNATIONAL BUSINESS MACHINES CORPORATION
  • Patent number: 8838801
    Abstract: A method for cloud optimization using workload analysis is provided in the illustrative embodiments. An architecture of a workload received for execution in a cloud computing environment is identified. The cloud computing environment includes a set of cloud computing resources. A section of the workload is identified and marked for static analysis. Static analysis is performed on the section to determine a characteristic of the workload. A subset of the set of cloud computing resources is selected such that a cloud computing resource in the subset is available for allocating to the workload and has a characteristic that matches the characteristic of the workload as determined from the static analysis. The subset of cloud computing resources is suggested to a job scheduler for scheduling the workload for execution.
    Type: Grant
    Filed: July 16, 2012
    Date of Patent: September 16, 2014
    Assignee: International Business Machines Corporation
    Inventors: Sangram Alapati, Prathiba Kumar, Gowri Palani, Rajan Ravindran, Satish Kumar Sadasivam
  • Patent number: 8839208
    Abstract: Systems and methods for rating interestingness of profiling data subsets are described. Profiling data including a set of nodes associated with at least one executed computer program is received. The profiling data contains a first set of scores corresponding to the resource consumption of the nodes. A second set of scores is identified from the profiling data, wherein a score of the second set of scores indicates a combined resource consumption of a corresponding node of the set of nodes and at least one other node of the set of nodes related to the corresponding node. An interestingness rate is evaluated for groups of nodes of the set of nodes based on the corresponding scores. The group of nodes with the highest, or satisfactory high value of the calculated interestingness rate is presented.
    Type: Grant
    Filed: December 16, 2010
    Date of Patent: September 16, 2014
    Assignee: SAP AG
    Inventors: Ralf Schmelter, Dietrich Mostowoj, Johannes Scheerer, Steffen Schreiber, Michael Wintergerst
  • Patent number: 8839209
    Abstract: A method for software performance analysis and debugging in a multi-tenant database network system is provided. In at least one embodiment, sampling is achieved using configuration files of each server cluster. Knowledge of the host names of each server in the cluster enables a profiler to target a single server for each sample, thereby facilitating a round-robin sample across a clustered server environment such that a CPU's load and processing cost associated to sampling is fairly and uniformly distributed across all servers in the cluster. As a result, in at least one embodiment of the analysis and debugging tool each sample is a complete stack trace dump of each thread running on the application server at that moment in time.
    Type: Grant
    Filed: February 23, 2011
    Date of Patent: September 16, 2014
    Assignee: salesforce.com, inc.
    Inventors: William Gallagher, Zuye Zheng, Fiaz Hossain, James Iry, Nagraj Kulkarni
  • Patent number: 8832666
    Abstract: A method and system for instrumentation are provided along with a method for instrumentation preparation. The method for instrumentation preparation may comprise obtaining address data of an original instruction in an original instruction stream, obtaining kernel mode data comprising a kernel breakpoint handler, obtaining user mode data comprising a user breakpoint handler, allocating a page of a process address space, creating a trampoline, associating the trampoline with a breakpoint instruction, and replacing the original instruction with the breakpoint instruction. The method for instrumentation may comprise detecting the breakpoint instruction, calling the kernel breakpoint handler, modifying an instruction pointer via the kernel breakpoint handler such that the instruction pointer points to the trampoline, and executing the trampoline.
    Type: Grant
    Filed: December 21, 2009
    Date of Patent: September 9, 2014
    Assignee: International Business Machines Corporation
    Inventors: Balbir Singh, Maneesh Soni
  • Patent number: 8826244
    Abstract: Method for providing programming support to a debugger are disclosed. The method includes defining at least one debugger programming statement, and instructing the debugger to execute the at least one debugger programming statement which modifies a least a portion of the computer program during execution of the computer program without recompiling the computer program. The debugger may be instructed to execute the at least one debugger programming statement at a specified position of the computer program. The at least one debugger programming statement may include a delete instruction that instructs the debugger to prevent one or more programming statements at a specified position in the computer program from being executed. The debugger may be instructed to execute the at least one debugger programming statement instead of one or more programming statements at a specified position in the computer program without recompiling the computer program.
    Type: Grant
    Filed: March 27, 2012
    Date of Patent: September 2, 2014
    Assignee: International Business Machines Corporation
    Inventors: Madhusudanan Kandasamy, Vidya Ranganathan
  • Patent number: 8826242
    Abstract: An exemplary method includes providing an application that includes client-side code and server-side code, instrumenting the client-side code and the server-side code to generate timestamps, distributing the instrumented client-side code and the instrumented server-side code and monitoring timestamps generated during execution of the application. In such a method, where timestamps generated by the client-side code and timestamps generated by the server-side code occur along a common timeline, a developer can monitor performance of the distributed application. Other exemplary methods, systems, etc., are also disclosed.
    Type: Grant
    Filed: November 27, 2007
    Date of Patent: September 2, 2014
    Assignee: Microsoft Corporation
    Inventors: Benjamin Livshits, William GJ Halfond, Jeffrey Van Gogh
  • Patent number: 8826234
    Abstract: A relational model may be used to encode primitives for each of a plurality of threads in a multi-core processor. The primitives may include tasks and parameters, such as buffers. The relationships may be linked to particular tasks. The tasks with the coding, which indicates the relationships, may then be used upon user selection to display a visualization of the functional relationships between tasks.
    Type: Grant
    Filed: December 23, 2009
    Date of Patent: September 2, 2014
    Assignee: Intel Corporation
    Inventors: Christopher J. Cormack, Nathaniel Duca, Jason Plumb
  • Patent number: 8826240
    Abstract: Application validation is performed based at least in part on object level hierarchy data associated with the application. An application is executed on a physical or emulated host device, and assembly code is generated for the executing application. The assembly code is analyzed to identify objects associated with the application, and to identify relationships between the objects. Based on the object and relationship data, an object level hierarchy is generated for the application. Validation of the application may be performed by comparing an object level hierarchy for a current version of the application to a previously generated hierarchy for a previous version of the application to identify differences between to the two hierarchies.
    Type: Grant
    Filed: September 29, 2012
    Date of Patent: September 2, 2014
    Assignee: Appurify, Inc.
    Inventors: Manish Lachwani, Jay Srinivasan, Rahul Jain, Pratyus Patnaik
  • Patent number: 8826243
    Abstract: In one embodiment, a computer program product for injecting error code includes a computer readable storage medium having computer readable program code embodied therewith. The computer readable program code includes computer readable program code configured to determine critical points in executing code of software under test, computer readable program code configured to determine an appropriate response action for each critical point based on an error encountered at each critical point, computer readable program code configured to inject a critical point segment into the executing code at a corresponding critical point, and computer readable program code configured to output a unique identifier of each critical point segment. In another embodiment, a system includes a processor, and a computer readable storage medium having computer readable program code embodied therewith having the above described functionality. Other systems and computer program products are described according to more embodiments.
    Type: Grant
    Filed: December 14, 2010
    Date of Patent: September 2, 2014
    Assignee: International Business Machines Corporation
    Inventors: Gerard M. Dearing, Terri A. Menendez
  • Patent number: 8819633
    Abstract: Methods for testing a software application by providing one or more test units. Each test unit is adapted to verify a feature of the software application. A weight is assigned to each test unit. A theoretical sequence of execution of the test units is determined for the assigned weights and the test units are executed for the theoretical sequence.
    Type: Grant
    Filed: March 25, 2012
    Date of Patent: August 26, 2014
    Assignee: International Business Machines Corporation
    Inventors: Riccardo Rossi, Gianluca Seghetti
  • Patent number: 8819642
    Abstract: A method and system for generating and processing test cases for effective black box testing of software applications is provided. Test cases are automatically generated based on parameters that are identified from automated manual test cases associated with business models. The generated automated test cases cover one or more paths in the business models. Further, the automated test cases are optimized by determining minimal path covered by the automated test cases in the business models. The optimization is performed based on analysis of the one or more paths covered by the automated test cases in the business models. Furthermore, code coverage data of the optimized test cases are obtained by execution of the optimized test cases. Finally, based on the code coverage data and predetermined conditions, the optimized test cases are analyzed for at least prioritization and further optimization of the optimized test cases for effective black box testing.
    Type: Grant
    Filed: July 9, 2012
    Date of Patent: August 26, 2014
    Assignee: Cognizant Technology Solutions India Pvt. Ltd.
    Inventors: Anant Ramdev Bhat, Giripriya MeenakshiSundaram, Naveen Kumar
  • Patent number: 8813055
    Abstract: A system and method for profiling a software application may include means for operating on context-specific data and costs. The system may include a descriptor apparatus for specifying identifiers of extended address elements to be profiled and locations for storing corresponding data values. In some embodiments, a list of variables to be included in profiling may be registered with an event agent and values of the variables may be captured in response to detection of a system event. Registering variables to be profiled may involve conveying a list of the variables or a pointer to such a list to the event agent. The event agent may associate the values of the registered variables with the detected system event and may store them in an event space database. The database may be accessed by a data space profiler to identify performance bottlenecks dependent on one or more registered variable values.
    Type: Grant
    Filed: November 8, 2006
    Date of Patent: August 19, 2014
    Assignee: Oracle America, Inc.
    Inventor: Nicolai Kosche
  • Patent number: 8813056
    Abstract: A program is executed with a first programmable device (10). Device operating points such as power supply voltage and/or clock frequency are adapted dependent on the states reached by the device during execution. Operation of programs that may have been sold after the device has been supplied to users is optimized by executing the computer program on each of a plurality of programmable devices (10) like the first programmable device, and collecting statistical data associated with the execution states encountered during execution by the plurality of programmable devices (10). Each of the plurality of programmable devices (10) collects its own statistical data and uploads the collected information to a common profiling apparatus (14). The profiling apparatus assigns device operating points to respective ones of the execution states, using an optimization that depends on the combined statistical data from the plurality of programmable devices (10).
    Type: Grant
    Filed: August 13, 2008
    Date of Patent: August 19, 2014
    Assignee: NXP B.V.
    Inventors: Artur Tadeusz Buchard, Petr Kourzanov, Ger Kersten
  • Patent number: 8813046
    Abstract: A system and computer-implemented method for transforming source code in an original natively encoded format to a locale neutral format, wherein data types and functions in the original format are estimated for compliance with the locale neutral format and an estimation is made as to the amount of code conversions necessary to comply with the locale neutral format. In addition, image files referenced by the source code is analyzed and embedded text extracted for enabling translation during the localization process.
    Type: Grant
    Filed: June 21, 2012
    Date of Patent: August 19, 2014
    Assignee: Infosys Limited
    Inventors: Suraj Nair, Krishna Markande, Aviraj Singh
  • Patent number: 8813041
    Abstract: In one embodiment, a method for inserting advertising into an application includes removing first application code from a first input executable file and placing it into an output executable file, wherein the first application code represents code part of the application. Then a first set of proxies is inserted into the first input executable file, wherein the first set of proxies, when run, makes calls to the first application code. Second application code is added into the output executable file, wherein the second application code represents code executable to display the advertising. The output executable file is compressed. Then, the first input executable file and the output executable file are provided to a device such that the device may load and execute the files.
    Type: Grant
    Filed: February 14, 2008
    Date of Patent: August 19, 2014
    Assignee: Yahoo! Inc.
    Inventor: Thomas Lopatic
  • Patent number: 8806448
    Abstract: An apparatus and method for dynamically analyzing a program are provided. The apparatus and method help minimize overhead in tracing the execution of the program without substantially affecting the operation of the program at run time. The method includes storing an environment value before execution of a function of a main page by storing a first instruction of the function in a temporary page before execution of the first instruction. The method also includes inserting a break instruction at an address of the first instruction in the main page, executing the break instruction, and storing an environment value after execution of the function by executing a break instruction of the temporary page.
    Type: Grant
    Filed: May 27, 2011
    Date of Patent: August 12, 2014
    Assignee: Samsung Electronics Co., Ltd.
    Inventor: Jae-Hoon Jeong
  • Patent number: 8806435
    Abstract: A method and system to remotely log debug information is described. A computer executing program code generates debug information upon the occurrence of an error in execution. The debug information is then sent to a remote computer using a network adaptor. In one embodiment, the computer executing the program is Extensible Firmware Interface (EFI) compliant.
    Type: Grant
    Filed: December 31, 2004
    Date of Patent: August 12, 2014
    Assignee: Intel Corporation
    Inventors: Ying'an Deng, Rui Jian, Caidong Song, Yuanhao Sun, Zhi Wang
  • Patent number: 8806437
    Abstract: A method, computer program product, and system for automating a test environment is provided. The method may include providing, at one or more computing devices, a superclass and a class-under-test, the superclass and the class-under-test having an inheritance chain therebetween. The method may further include inserting, via the computing device, an intermediate mock class between the superclass and the class-under-test. The method may also include automatically modifying, via the computing device, the class-under-test at runtime.
    Type: Grant
    Filed: June 29, 2011
    Date of Patent: August 12, 2014
    Assignee: International Business Machines Corporation
    Inventors: Mauro Arcese, Marco Imperia, Marco Mattia, Genoveffa Nacchia, Leonardo Rosati, Stefano Sidoti
  • Patent number: 8799871
    Abstract: An exemplary embodiment provides methods, systems and mediums for executing arithmetic expressions that represent elementwise operations. An exemplary embodiment provides a computing environment in which elementwise expressions may be executed in parallel by multiple execution units. In an exemplary embodiment, multiple execution units may reside on a network.
    Type: Grant
    Filed: January 8, 2007
    Date of Patent: August 5, 2014
    Assignee: The MathWorks, Inc.
    Inventor: Brett Baker
  • Patent number: 8799873
    Abstract: Collecting tracepoint data includes: maintaining, by a log handler, a list of a plurality of tracepoints and each tracepoint's parameters, the values of the parameters defining, for a tracepoint, information to be stored when an application encounters the tracepoint; encountering, by an application, a tracepoint; determining, responsive to the encounter by the log handler, whether the tracepoint is linked to a different tracepoint; and if the tracepoint is linked to a different tracepoint, determining, by the log handler, whether to modify values of the parameters for the different tracepoint and executing the different tracepoint.
    Type: Grant
    Filed: May 10, 2012
    Date of Patent: August 5, 2014
    Assignee: International Business Machines Corporation
    Inventors: James E. Carey, John M. Santosuosso
  • Patent number: 8799872
    Abstract: A plurality of samples is generated in a computer to profile and record a plurality of events associated with the computer. For each of the plurality of samples, a plurality of partial samples is accumulated prior to occurrence of each of the plurality of events. In addition, a processor may process a current sample of the plurality of samples in response to (i) a completion of a previous sample of the plurality of samples and (ii) a predetermined threshold quantity of partial samples being accumulated. Embodiments of the invention include methods, systems and computer program products.
    Type: Grant
    Filed: June 27, 2010
    Date of Patent: August 5, 2014
    Assignee: International Business Machines Corporation
    Inventor: Frank E. Levine
  • Patent number: 8793662
    Abstract: Runtime code hooking techniques are described in which a place holder instruction within a compiled module is used as an entry point to enable code hooking. A hook function to modify a target function is developed. At runtime, the target function to be modified is located. A place holder instruction within the target function is overwritten with instructions to cause execution of the hook function when the target function is called.
    Type: Grant
    Filed: March 25, 2008
    Date of Patent: July 29, 2014
    Assignee: Microsoft Corporation
    Inventors: Ashwin S. Needamangala, Daniel S. Mihai, Hristo H. Ivanov, Marius Popa, Mariyan D. Fransazov
  • Patent number: 8793656
    Abstract: A selection method and related application is provided for a framework-based application having programming applications with both language program files and configuration files. In one embodiment, the method comprises abstracting a frame configuration model instance by analyzing configuration files prior to any modifications made to the program. The frame configuration model instance denoting individual configuration nodes in the framework model and further defining relationship between one or more code units in the configuration nodes and program code units in the application. Then one or more control test cases are constructed by profiling select test cases of the application, wherein the control flow consists of code units traversed during test case execution and control flow of said code units. Subsequently, an extended control flow is obtained by correlating configuration nodes in the framework configuration model instance with the code units in said control flow.
    Type: Grant
    Filed: December 23, 2010
    Date of Patent: July 29, 2014
    Assignee: International Business Machines Corporation
    Inventors: Sheng Huang, Shao C. Li, Zhong J. Li, He H. Liu, Hua F. Tan, Jun Zhu, Wei Zhu
  • Patent number: 8789019
    Abstract: Various embodiments include at least one of systems, methods, and software to receive input configuring tests within a computing environment to expose users to standard application or website experiences or test experiences. In some embodiments, multiple tests may be configured to run orthogonally within user experiences without affecting the results of one another. Some such embodiments preserve the ability to execute certain tests in a non-orthogonal manner while other tests are allowed to execute orthogonally.
    Type: Grant
    Filed: April 22, 2013
    Date of Patent: July 22, 2014
    Assignee: eBay Inc.
    Inventors: Jasdeep Singh Sahni, Anil Madan, Deepak Seetharam Nadig, Po Cheung, Bhavesh Mistry, John Bodine, Michael Lo
  • Patent number: 8789024
    Abstract: A computer implemented method involving receiving by an integrated development environment an output file from a profiling utility to generate a line chart of data from the output file. The method to visualize profiling data for a binary file automatically and to displaying corresponding source code in response to a user selection of a data point in the line chart.
    Type: Grant
    Filed: November 4, 2009
    Date of Patent: July 22, 2014
    Assignee: Red Hat, Inc.
    Inventor: Elliott Baron
  • Publication number: 20140201720
    Abstract: A branch auditing system can be automatically injected into a computer program, in one embodiment, in response to a programming call provided in source code by a programmer who has selected a particular branch, in a set of possible branches, for auditing. The branch auditing system can record, in an obfuscated data structure, a path taken at the particular branch and the parameters associated with the branch and later an auditor can determine whether the path taken was valid, and if the path taken was invalid, operations can be performed to protect the program, system and/or user.
    Type: Application
    Filed: January 14, 2013
    Publication date: July 17, 2014
    Applicant: Apple Inc.
    Inventors: Cedric Tessier, Daniel Reynaud, Jean-Baptise Aviat, Jonathan Gregory McLachlan, Julien Lerouge, Pierre Betouin
  • Patent number: 8782610
    Abstract: A data structure of a run-time object having a hash value field. The data structure allows an object allocation site to be traced from the run-time object, the object allocation site being a site in a program allocating the run-time object. A method for allowing an object allocation site to be traced from a run-time object includes embedding a value corresponding to the object allocation site in the program. A hash-value field includes the embedded value and the object identifier, and the tracing is performed by identifying the object allocation site that corresponds to the embedded value. A computer system for tracing an object allocation site includes a memory that stores the run-time object; an acquirer that acquires the value from a hash value field; and an identification unit that identifies the object allocation site that corresponds to the acquired value.
    Type: Grant
    Filed: August 16, 2013
    Date of Patent: July 15, 2014
    Assignee: International Business Machines Corporation
    Inventors: Rei Odaira, Kazunori Ogata