Java Platform Debugger Architecture
The Java Platform Debugger Architecture (JPDA) is a collection of APIs to debug Java code. * Java Debugger Interface (JDI) – defines a high-level Java language interface that developers can easily use to write remote debugger application tools. * Java Virtual Machine Tools Interface (JVMTI) – a native interface that helps to inspect the state and to control the execution of applications running in the Java Virtual Machine (JVM). * Java Virtual Machine Debug Interface (JVMDI) – ''JVMDI was deprecated in J2SE 5.0 in favor of JVM TI, and was removed in Java SE 6.'' * Java Debug Wire Protocol (JDWP) – defines communication between debuggee (a Java application) and debugger processes. Java Debugger Interface (JDI) JDI is the highest-layer of the Java Platform Debugger Architecture. It allows to access the JVM and the internal variables of the debugged program. It also allows to set breakpoints, stepping, and handle threads. See also * Eclipse, an open-source IDE integrated ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Debugging
In computer programming and software development, debugging is the process of finding and resolving '' bugs'' (defects or problems that prevent correct operation) within computer programs, software, or systems. Debugging tactics can involve interactive debugging, control flow analysis, unit testing, integration testing, log file analysis, monitoring at the application or system level, memory dumps, and profiling. Many programming languages and software development tools also offer programs to aid in debugging, known as ''debuggers''. Etymology The terms "bug" and "debugging" are popularly attributed to Admiral Grace Hopper in the 1940s. While she was working on a Mark II computer at Harvard University, her associates discovered a moth stuck in a relay and thereby impeding operation, whereupon she remarked that they were "debugging" the system. However, the term "bug", in the sense of "technical error", dates back at least to 1878 and Thomas Edison who describes the "litt ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Java (programming Language)
Java is a high-level, class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible. It is a general-purpose programming language intended to let programmers ''write once, run anywhere'' ( WORA), meaning that compiled Java code can run on all platforms that support Java without the need to recompile. Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless of the underlying computer architecture. The syntax of Java is similar to C and C++, but has fewer low-level facilities than either of them. The Java runtime provides dynamic capabilities (such as reflection and runtime code modification) that are typically not available in traditional compiled languages. , Java was one of the most popular programming languages in use according to GitHub, particularly for client–server web applications, with a reported 9 million developers. Java was originally developed ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Java Virtual Machine Tools Interface
Java Virtual Machine Tool Interface (JVMTI, or more properly, JVM TI) was introduced in J2SE 5.0 (''Tiger''). This interface allows a program to inspect the state and to control the execution of applications running in the Java Virtual Machine (JVM). JVMTI is designed to provide an Application Programming Interface (API) for the development of tools that need access to the state of the JVM. Examples for such tools are debuggers or profilers. The JVMTI is a native interface of the JVM. A library, written in C or C++, is loaded during the initialization of the JVM. The library has access to the JVM state by calling JVMTI and JNI (Java Native Interface) functions and can register to receive JVMTI events using event handler functions that are called by the JVM when such an event occurs. JVMTI was defined through the Java Community Process by JSR-163, the specification for the Java Platform Profiling Architecture. The JVMTI replaces the JVMPI (Java Virtual Machine Profiling Interfac ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Java Virtual Machine
A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally describes what is required in a JVM implementation. Having a specification ensures interoperability of Java programs across different implementations so that program authors using the Java Development Kit (JDK) need not worry about idiosyncrasies of the underlying hardware platform. The JVM reference implementation is developed by the OpenJDK project as open source code and includes a JIT compiler called HotSpot. The commercially supported Java releases available from Oracle are based on the OpenJDK runtime. Eclipse OpenJ9 is another open source JVM for OpenJDK. JVM specification The Java virtual machine is an abstract (virtual) computer defined by a specification. It is a part of java runtime environment. The garbage-collection algorithm u ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Java Debug Wire Protocol
In computing, the Java Debug Wire Protocol (JDWP) is a communication protocol which is part of the Java Platform Debugger Architecture. It is used for communication between a debugger and the Java Virtual Machine, which it debugs. It allows to debug processes on a different computer. It can work over a network socket or through shared memory. The protocol is implemented in the software library libjdwp. It can be activated using the -Xrunjdwp parameter of Java. The default TCP port used for the protocol is 8000. Metasploit includes a module for JDWP. It can exploit it using various scripts, which have functions such as injecting a Java class that executes a shell command, returns operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also in ... details or injects an arbitrary cla ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Debugger
A debugger or debugging tool is a computer program used to software testing, test and debugging, debug other programs (the "target" program). The main use of a debugger is to run the target program under controlled conditions that permit the programmer to track its execution and monitor changes in computer resources that may indicate malfunctioning code. Typical debugging facilities include the ability to run or halt the target program at specific points, display the contents of memory, CPU registers or storage devices (such as disk drives), and modify memory or register contents in order to enter selected test data that might be a cause of faulty program execution. The code to be examined might alternatively be running on an ''instruction set simulator'' (ISS), a technique that allows great power in its ability to halt when specific conditions are encountered, but which will typically be somewhat slower than executing the code directly on the appropriate (or the same) processor ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
JPDA Architecture
The Java Platform Debugger Architecture (JPDA) is a collection of APIs to debug Java code. * Java Debugger Interface (JDI) – defines a high-level Java language interface that developers can easily use to write remote debugger application tools. * Java Virtual Machine Tools Interface (JVMTI) – a native interface that helps to inspect the state and to control the execution of applications running in the Java Virtual Machine (JVM). * Java Virtual Machine Debug Interface (JVMDI) – ''JVMDI was deprecated in J2SE 5.0 in favor of JVM TI, and was removed in Java SE 6.'' * Java Debug Wire Protocol (JDWP) – defines communication between debuggee (a Java application) and debugger processes. Java Debugger Interface (JDI) JDI is the highest-layer of the Java Platform Debugger Architecture. It allows to access the JVM and the internal variables of the debugged program. It also allows to set breakpoints, stepping, and handle threads. See also * Eclipse, an open-source IDE integrated ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Breakpoint
In software development, a breakpoint is an intentional stopping or pausing place in a program, put in place for debugging purposes. It is also sometimes simply referred to as a pause. More generally, a breakpoint is a means of acquiring knowledge about a program during its execution. During the interruption, the programmer inspects the test environment (general purpose registers, memory, logs, files, etc.) to find out whether the program is functioning as expected. In practice, a breakpoint consists of one or more conditions that determine when a program's execution should be interrupted. Breakpoints were invented for ENIAC, one of the earliest digital computers, by programmer Betty Holberton. In the initial design of ENIAC, program flow was set by plugging cables from one unit to another. To make the program stop at a certain point, a cable was removed, called a ''breakpoint''. Machine breakpoints Early mainframe computers, such as the IBM/360, had console switches/dial ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Stepping (debugging)
Program animation or stepping refers to the debugging method of executing code one instruction or line at a time. The programmer may examine the state of the program, machine, and related data before and after execution of a particular line of code. This allows the programmer to evaluate the effects of each statement or instruction in isolation, and thereby gain insight into the behavior (or misbehavior) of the executing program. Nearly all modern IDEs and debuggers support this mode of execution. History Instruction stepping or single cycle originally referred to the technique of stopping the processor clock and manually advancing it one cycle at a time. For this to be possible, three things are required: * A control that allows the clock to be stopped (e.g. a "Stop" button). * A second control that allows the stopped clock to be manually advanced by one cycle (e.g. An "instruction step" switch and a "Start" button). * Some means of recording the state of the processor after ea ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Eclipse (software)
Eclipse is an integrated development environment (IDE) used in computer programming. It contains a base workspace and an extensible plug-in (computing), plug-in system for customizing the environment. It is the second-most-popular IDE for Java (programming language), Java development, and, until 2016, was the most popular. Eclipse is written mostly in Java and its primary use is for developing Java applications, but it may also be used to develop applications in other programming languages via plug-ins, including Ada (programming language), Ada, ABAP, C (programming language), C, C++, C Sharp (programming language), C#, Clojure, COBOL, D (programming language), D, Erlang (programming language), Erlang, Fortran, Groovy (programming language), Groovy, Haskell (programming language), Haskell, JavaScript, Julia (programming language), Julia, Lasso (programming language), Lasso, Lua (programming language), Lua, Software AG, NATURAL, Perl, PHP, Prolog, Python (programming language), Py ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
IntelliJ IDEA
IntelliJ IDEA is an integrated development environment (IDE) written in Java (programming language), Java for developing computer software written in Java, Kotlin (programming language), Kotlin, Groovy (programming language), Groovy, and other JVM-based languages. It is developed by JetBrains (formerly known as IntelliJ) and is available as an Apache 2 Licensed community edition, and in a proprietary software, proprietary commercial edition. Both can be used for commercial development. History The first version of IntelliJ IDEA was released in January 2001 and was one of the first available Java IDEs with advanced code navigation and code refactoring capabilities integrated. In 2009, JetBrains released the source code for IntelliJ IDEA under the open-source software, open-source Apache License 2.0. JetBrains also began distributing a limited version of IntelliJ IDEA consisting of open-source features under the moniker Community Edition. The commercial Ultimate Edition provides ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
JSwat
{{Infobox Software , name = , developer = Nathan Fiedler , latest_release_version = 2013.1 , latest_release_date = {{release date and age, 2013, 03, 06 , discontinued = yes , operating_system = Cross-platform , language = Multilingual , genre = Debugger , license = CDDL , programming_language = Java , website = https://github.com/nlfiedler/jswat JSwat is a graphical Java debugger front-end, written to use the Java Platform Debugger Architecture. JSwat is licensed under the Common Development and Distribution License and is freely available in both binary and source code form. In addition to the graphical interface, there is a console based version which operates very much like jdb, the debugger included with the Java Development Kit. Features include breakpoints with conditionals and monitors; colorized source code display; graphical display panels showing threads, sta ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |