You are not logged in.

Dear visitor, welcome to Jabaco - Community. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

theuserbl

Intermediate

  • "theuserbl" started this thread

Posts: 436

Date of registration: Dec 20th 2008

  • Send private message

1

Sunday, July 19th 2009, 6:37pm

Deleting debug-information

With Javac it is possible with the options "-g" and "-g:none" to either creating .class files with a lot of debug-code or small files without debug-code.
If you compile without any -g option, it compiles withsome debug-code.

Jabaco on the other side, creates only code with the same amount of debug code (for example the LineNumberTable and so).
If you want to remove it, have a look at
http://blogs.sun.com/ahe/entry/how_to_st…bug_information

There stand, that a

Source code

1
pack200 -r -G debug.jar

will remove all debug-code.

OlimilO

Intermediate

  • "OlimilO" is male

Posts: 277

Date of registration: Jan 18th 2009

Location: Germany

Occupation: software engineer

  • Send private message

2

Sunday, July 19th 2009, 10:01pm

Hi theuserbl,

thanks for the idea.
There is a similar option in Jabaco:
In the project-explorer select your projectname (the very above item), then look into the properties editor.
Right next to the "Compile"-item you can select "Bytecode" or "Debug".

regards

OlimilO

theuserbl

Intermediate

  • "theuserbl" started this thread

Posts: 436

Date of registration: Dec 20th 2008

  • Send private message

3

Sunday, July 19th 2009, 10:37pm

thanks for the idea.


Thanks for your response.


Quoted

There is a similar option in Jabaco:
In the project-explorer select your projectname (the very above item), then look into the properties editor.
Right next to the "Compile"-item you can select "Bytecode" or "Debug".


I have tried it now out, but it seems, that it don't work.

I have changed "Debug" to "Bytecode".
Then I have created a Button on the Form.
After it I have compiled it to jar. The jar I have then extracted.

With

Source code

1
javap -c -s -l Module1
I have looked at the Module1.class

The output is

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
javap -s -l -c Modul
e1
Compiled from "Module1.jsrc"
public class Module1 extends java.lang.Object{
public static Form1 Form1;
  Signature: LForm1;

public static void main(java.lang.String[]);
  Signature: ([Ljava/lang/String;)V
  Code:
   0:   aconst_null
   1:   astore_1
   2:   aconst_null
   3:   astore_2
   4:   new     #22; //class VBA/VBArray
   7:   dup
   8:   invokespecial   #23; //Method VBA/VBArray."<init>":()V
   11:  astore_3
   12:  aload_0
   13:  invokestatic    #27; //Method VBA/VBArray.createVBArray:([Ljava/lang/Str
ing;)LVBA/VBArrayString;
   16:  astore_3
   17:  getstatic       #20; //Field Form1:LForm1;
   20:  invokevirtual   #32; //Method VB/AbstractForm.SetDefaultClose:()V
   23:  getstatic       #20; //Field Form1:LForm1;
   26:  invokevirtual   #35; //Method VB/AbstractForm.Show:()V
   29:  nop
   30:  return
   31:  nop
   32:  aload_1
   33:  checkcast       #37; //class java/lang/Exception
   36:  invokestatic    #43; //Method VBA/Interaction.MsgBoxError:(Ljava/lang/Ex
ception;)V
   39:  goto    29
   42:  astore_2
   43:  astore_1
   44:  ret     2
   46:  jsr     42
   49:  goto    31
  Exception table:
   from   to  target type
    12    29    46   any

  LineNumberTable:
   line 4: 0
   line 5: 4
   line 6: 12
   line 7: 17
   line 8: 23
   line 9: 29

  LocalVariableTable:
   Start  Length  Slot  Name   Signature
   0      52      0    args       [Ljava/lang/String;
   0      52      1    Err       Ljava/lang/Exception;
   0      52      2    h3       Ljava/lang/Exception;
   0      52      3    myArgs       LVBA/VBArrayString;


public Module1();
  Signature: ()V
  Code:
   0:   aload_0
   1:   invokespecial   #13; //Method java/lang/Object."<init>":()V
   4:   nop
   5:   return


  LocalVariableTable:
   Start  Length  Slot  Name   Signature
   0      6      0    me       LModule1;


public static {};
  Signature: ()V
  Code:
   0:   new     #16; //class Form1
   3:   dup
   4:   invokespecial   #17; //Method Form1."<init>":()V
   7:   putstatic       #20; //Field Form1:LForm1;
   10:  nop
   11:  return




}


For information:
The parts with "LocalVariableTable" and "LineNumberTable" are Debug-code.
For example the LineNumberTable says, which Line number of the Sourcecode, you can find as representation on the Asseblercode.
Only needed for debugging.


Greatings
theuserbl

theuserbl

Intermediate

  • "theuserbl" started this thread

Posts: 436

Date of registration: Dec 20th 2008

  • Send private message

4

Sunday, July 19th 2009, 10:42pm

And here the code of Form1.class in the same way deassembalted:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
javap -s -l -c Form1

Compiled from "Form1.jsrc"
public class Form1 extends VB.Form{
public Form1();
  Signature: ()V
  Code:
   0:   aload_0
   1:   invokespecial   #9; //Method VB/Form."<init>":()V
   4:   aload_0
   5:   invokevirtual   #12; //Method initVars:()V
   8:   nop
   9:   return


  LocalVariableTable:
   Start  Length  Slot  Name   Signature
   0      10      0    me       LForm1;


}


It is shorter then Module1. But as you can see, there existing still "LocalVariableTable".
But Pack200 can remove it. :-)

Manuel

Administrator

  • "Manuel" is male

Posts: 256

Date of registration: Jul 16th 2008

Location: Erlangen, Germany

Occupation: Software Developer

Hobbies: Jabaco, game theory, text-mining

  • Send private message

5

Sunday, July 19th 2009, 10:44pm

Thank you. I'll implement this feature in a later version...

Manuel

Administrator

  • "Manuel" is male

Posts: 256

Date of registration: Jul 16th 2008

Location: Erlangen, Germany

Occupation: Software Developer

Hobbies: Jabaco, game theory, text-mining

  • Send private message

6

Monday, August 10th 2009, 8:28pm

fixed since version 1.5

Rate this thread
WoltLab Burning Board