Patent ID: 7478366

Claim:
A debugging apparatus including a processor capable of executing a process of debugging a computer program across multiple programming languages, wherein the debugging is performed on .Net platform source code of the computer program, while the computer program is executed within a Java runtime environment, the debugger comprising: an integrated development environment (IDE) interface capable of interfacing with at least one IDE tool for the purpose of receiving a plurality of debugging commands, each having at least one parameter; a debug engine capable of determining a current breakpoint location in said source code; a Java debugger interface (JDI) capable of communicating with at least one Java debugger; a convert engine capable of converting said at least one parameter of each of said debugging commands from a .Net compliant format to a Java compliant format, said convert engine being further capable of converting said debugging commands from said Java compliant format in Java source code to said .Net compliant format; an expression evaluator capable of at least parsing said at least one parameter to derive atomic elements of expressions written in a .Net compliant format; and a debug information repository at least comprising debug information, wherein said convert engine determines for each atomic element a type of a responsive .Net expression and further transforms each atomic element into a Java programming language compliant format to bridge the semantic differences between .Net programming languages and Java programming language wherein said atomic element is at least of one of an operator and an operand; wherein the debugging apparatus if further capable of: performing said debugging command with the converted parameters using a Java debugger and a Java runtime environment; converting the debugging results returned by said Java debugger from said Java source code to .Net source code; and, returning the converted debugging results to said IDE tool, wherein the debugging is performed at a source level of the computer program written in any programming language supported by the .Net platform.