Определите, был ли .class файл скомпилирован с информацией об отладке?

Если Вы не можете найти хороший преобразователь, Вы могли бы всегда компилировать код c# и использовать dissasembler в Отражатель для наблюдения кода Visual Basic. Некоторые имена переменной изменятся.

38
задан Atos 2 October 2009 в 08:00
поделиться

2 ответа

Если вы находитесь в командной строке, то javap -l отобразит LineNumberTable и LocalVariableTable, если он присутствует:

peregrino:$ javac -d bin -g:none src/Relation.java 
peregrino:$ javap -classpath bin -l Relation 
public class Relation extends java.lang.Object{
public Relation();

peregrino:$ javac -d bin -g:lines src/Relation.java 
peregrino:$ javap -classpath bin -l Relation 
public class Relation extends java.lang.Object{
public Relation();
  LineNumberTable: 
   line 1: 0
   line 33: 4

peregrino:$ javac -d bin -g:vars src/Relation.java 
peregrino:$ javap -classpath bin -l Relation 
public class Relation extends java.lang.Object{
public Relation();

  LocalVariableTable: 
   Start  Length  Slot  Name   Signature
   0      5      0    this       LRelation;

javap -c отобразит исходный файл, если он присутствует в начале декомпиляции:

peregrino:$ javac -d bin -g:none src/Relation.java 
peregrino:$ javap -classpath bin -l -c Relation | head
public class Relation extends java.lang.Object{
  ...

peregrino:$ javac -d bin -g:source src/Relation.java 
peregrino:$ javap -classpath bin -l -c Relation | head
Compiled from "Relation.java"
public class Relation extends java.lang.Object{
  ...

Программно я бы посмотрел на ASM , а не написал бы еще один считыватель байт-кода.

44
ответ дан 27 November 2019 в 03:50
поделиться

You must check the Code structure in the class file and look for LineNumberTable and LocalVariableTable attributes.

Tools like ASM or Apache Commons BCEL (Byte Code Engineering Library) will help: https://commons.apache.org/proper/commons-bcel/apidocs/index.html?org/apache/bcel/classfile/LineNumberTable.html

2
ответ дан 27 November 2019 в 03:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: