Giter Club home page Giter Club logo

gdbmi-for-java's Introduction

gdbmi-for-java

Introduction

Many years ago, I was involved (as a co-founder) in a startup called Win GDB. In brief, it was an add-in for Visual Studio allowing to debug programs with GDB in various scenarios (e.g. native Linux/Solaris applications on a remote host, embedded Linux on a connected device, etc.). Over time it evolved into a more versatile tool helping in other development stages like building or deploying. To drive GDB, it exploited GDB/MI Interface. Later, we also added support for Android (Java).

Instead of creating a new add-in meant strictly for Android, the solution was a command-line tool that would support GDB/MI Interface at the front-end, and drive Java debugging using JDI at the back-end. This is how this project came about. From the Visual Studio add-in point of view, it was yet another GDB binary to drive.

It implements only a subset of GDB/MI commands which we call from VS Add-in. They are easy to find in code by pattern "^done," which is the standard prefix GDB returns in a command result while working in GDB/MI mode.

Sources

I was the main developer of that module, although the co-founder was also involved in it. Therefore the sources, are not complete. Some parts (like expression parser) have been removed as not implemented by me. Hence it is buildable but can't run properly. Although, I thought it is still worth putting into GitHub as my portfolio, and a prove I touched Java in the past ;-)

The directory structure

  • engine - the actual code in Java implementing GDB/MI commands, calls to JDI, and all related logic and data structures. Due to the reasons mentioned above the code is incomplete.
  • debugger - a simple Java package containing only one routine wingdbJavaDebugger.Debugger.main, it starts the engine.
  • launcher - a simple Windows console application written in C++ that starts the debugger. It is executed by Visual Studio Add-in. The code published here is incomplete, and can't be built.

Dependencies

The project depends on jython and package com.sun.jdi.

How to build

cd engine
set CLASSPATH=c:\jython2.7.2\jython.jar
javac -Xlint -classpath %CLASSPATH% *.java

gdbmi-for-java's People

Contributors

marinesovitch avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.