TL;DR: In this paper, a digital-imaging based system for reading graphical indicia, including code symbols, on objects such as, but not limited to, code symbol menus by the user simply pointing his or her finger at the particular code symbol on the code symbol menu to be read, while digital images of the coded symbol menu and the pointing finger are automatically captured, buffered and processed.
Abstract: A digital-imaging based system for and method of reading graphical indicia, including code symbols, on objects such as, but not limited to, code symbol menus by the user simply pointing his or her finger at the particular code symbol on the code symbol menu to be read, while digital images of the code symbol menu and the pointing finger are automatically captured, buffered and processed.
TL;DR: In this article, a method and system for modifying the behavior of existing executable code by injecting new code into an executable file is provided, which injects a reference to new code contained in a DLL into an existing executable file such that, when the code of the executable file was executed, the DLL is automatically loaded and the new code is automatically executed.
Abstract: A method and system for modifying the behavior of existing executable code by injecting new code into an executable file is provided. The injection mechanism injects a reference to new code contained in a DLL into an existing executable file such that, when the code of the executable file is executed, the DLL is automatically loaded and the new code is automatically executed. A reference to the DLL is injected into the executable file by either modifying an import table of the file, which causes automatic loading of the DLLs referred to therein, or by adding DLL loader code to the file. The DLL loader code uses an underlying operating system call to load the DLL. Further, the injection mechanism provides enhanced security by injecting security code and data into the executable file. The injected security code mechanism uses an incremental encryption and decryption process to encrypt and decrypt portions of the executable file in a more secure manner.
TL;DR: In this paper, a system for debugging software uses a portable debug environment-independent client debugger object and at least one non-portable server debugger object with platform-specific debugging logic.
Abstract: A system for debugging software uses a portable debug environment-independent client debugger object and at least one non-portable server debugger object with platform-specific debugging logic. The client debugger object has a graphic user interface which allows a user to control and manipulate the server debugger object with debug environment-independent debug requests. The server debugger object performs a platform-specific debug operation on the software to be debugged. The platform-specific results generated by the debugging operation are translated to debug environment-independent results and returned to the client debugger object. This operation allows the same client debugger object to be used with one or more server debugger objects running on different platforms.
TL;DR: The human-oriented object programming system (HOOPS) as discussed by the authors provides an interactive and dynamic modeling system to assist in the incremental generation of symbolic information of computer programs that facilitates the development of complex computer programs such as operating systems and large applications with graphic user interfaces (GUIs).
Abstract: A human-oriented object programming system (HOOPS) and its debugger provide an interactive and dynamic modeling system to assist in the incremental generation of symbolic information of computer programs that facilitates the development of complex computer programs such as operating systems and large applications with graphic user interfaces (GUIs). A program is modeled as a collection of units called components. A component represents a single compilable language element such as a class or a function. One major functionality built in HOOPS is the debugger, using symbolic properties. The database stores the components and properties. The debugger, using a GUI, displays to the user the execution state of the program. To display the execution state in terms of the programmer's source code, the debugger demands retrieval and/or generation of the symbolic properties of the program. The compiler, which is responsible for calculating the dependencies associated with a component, uses those dependencies to generate the information stored in symbolic properties. The debugger matches versions of source and object code and retrieves source code configuration as needed. Symbolic properties that are stored in the database can be removed to reduce database and disk memory usage; they can be later reconstructed using the same method of demand-based generation of symbolic information.
TL;DR: Fix-and-continue as mentioned in this paper allows a user to begin a debugging session where if an error in the code is encountered, the user can edit the corresponding source code to correct the error and then execute a fix and continue command all without leaving the debugging session.
Abstract: This Continuation-In-Part describes a part of this run-time debugger operation which is designated the "Fix-and-Continue" invention. This invention permits a user to begin a debugging session wherein if an error in the code is encountered, the user can edit the corresponding source code to correct the error and then execute a "Fix and Continue" command all without leaving the debugging session. The Fix and Continue code calls the compiler to recompile the source code file with the edited text in it, receives the resulting recompiled object code file from the compiler, uses the dynamic linker to link the recompiled object code into the target application program process, patches the previous version of this same object code fie to refer to the newly recompiled code, resets any required variables and registers, resets the program counter to the line of code being executed when the error was discovered. The debugger then continues in the debug session thereby saving the time it would ordinarily take to quit the debug session, relink and reload the target program and start the debug session once again.