netbeansproperties-filejpda

Saving longer list of previous debugging sessions in Netbeans


When debugging remote applications, Netbeans remembers the last three, and shows the most recent in the Attach dialog.

Attach debugger Menu

Attach debugger Dialog

My question is whether anyone has looked into a plugin or another solution, where you can attach to multiple servers at once (we have a bunch of servers behind a load-balancer, with no session persistence, so I can't predefine which server the request will hit), or a way to save more than three previous servers?

EDIT: I have discovered that the file containing the settings for the last "attaches" is %APPDATA%\NetBeans\8.0.2\config\Services\org-netbeans-modules-debugger-Settings.properties

Based on the Netbeans FAQ article regarding userdir

original settings:

debugger.last_attaches.used_slots:# array
debugger.last_attaches.used_slots.0:# java.lang.Integer
debugger.last_attaches.used_slots.0.primitiveWrapper:1
debugger.last_attaches.used_slots.1:# java.lang.Integer
debugger.last_attaches.used_slots.1.primitiveWrapper:3
debugger.last_attaches.used_slots.2:# java.lang.Integer
debugger.last_attaches.used_slots.2.primitiveWrapper:2
debugger.last_attaches.used_slots.array_type:java.lang.Integer
debugger.last_attaches.used_slots.length:3

Solution

  • I found a fix, altering a lot of settings in the aforementioned properties file: note that the values in the first section have to be present for the incremented number of slots, defined below will show

    Last connections:

    debugger.last_attach_type:"Java Debugger (JPDA)"
    debugger.last_attaches.slot_0.attach_type:"Java Debugger (JPDA)"
    debugger.last_attaches.slot_0.display_name:"Attach to someserver0484.somedomain.local:8888"
    debugger.last_attaches.slot_0.values.attaching_connector:"com.sun.jdi.SocketAttach"
    debugger.last_attaches.slot_0.values.connection_settings:# java.util.HashMap
    debugger.last_attaches.slot_0.values.connection_settings.0-key:"com.sun.jdi.SocketAttach"
    debugger.last_attaches.slot_0.values.connection_settings.0-value:# java.util.HashMap
    debugger.last_attaches.slot_0.values.connection_settings.0-value.0-key:"port"
    debugger.last_attaches.slot_0.values.connection_settings.0-value.0-value:"8888"
    debugger.last_attaches.slot_0.values.connection_settings.0-value.1-key:"hostname"
    debugger.last_attaches.slot_0.values.connection_settings.0-value.1-value:"someservercs0484.somedomain.local"
    debugger.last_attaches.slot_0.values.connection_settings.0-value.2-key:"timeout"
    debugger.last_attaches.slot_0.values.connection_settings.0-value.2-value:"50000"
    debugger.last_attaches.slot_0.values.connection_settings.0-value.length:3
    debugger.last_attaches.slot_0.values.connection_settings.length:1
    debugger.last_attaches.slot_1.attach_type:"Java Debugger (JPDA)"
    debugger.last_attaches.slot_1.display_name:"Attach to someserver0137.somedomain.local:8888"
    debugger.last_attaches.slot_1.values.attaching_connector:"com.sun.jdi.SocketAttach"
    debugger.last_attaches.slot_1.values.connection_settings:# java.util.HashMap
    debugger.last_attaches.slot_1.values.connection_settings.0-key:"com.sun.jdi.SocketAttach"
    debugger.last_attaches.slot_1.values.connection_settings.0-value:# java.util.HashMap
    debugger.last_attaches.slot_1.values.connection_settings.0-value.0-key:"port"
    debugger.last_attaches.slot_1.values.connection_settings.0-value.0-value:"8888"
    debugger.last_attaches.slot_1.values.connection_settings.0-value.1-key:"hostname"
    debugger.last_attaches.slot_1.values.connection_settings.0-value.1-value:"someserver0137.somedomain.local"
    debugger.last_attaches.slot_1.values.connection_settings.0-value.2-key:"timeout"
    debugger.last_attaches.slot_1.values.connection_settings.0-value.2-value:"50000"
    debugger.last_attaches.slot_1.values.connection_settings.0-value.length:3
    debugger.last_attaches.slot_1.values.connection_settings.length:1
    debugger.last_attaches.slot_10.attach_type:"Java Debugger (JPDA)"
    debugger.last_attaches.slot_10.display_name:"Attach to someserver0136.somedomain.local:8888"
    debugger.last_attaches.slot_10.values.attaching_connector:"com.sun.jdi.SocketAttach"
    debugger.last_attaches.slot_10.values.connection_settings:# java.util.HashMap
    debugger.last_attaches.slot_10.values.connection_settings.0-key:"com.sun.jdi.SocketAttach"
    debugger.last_attaches.slot_10.values.connection_settings.0-value:# java.util.HashMap
    debugger.last_attaches.slot_10.values.connection_settings.0-value.0-key:"port"
    debugger.last_attaches.slot_10.values.connection_settings.0-value.0-value:"8888"
    debugger.last_attaches.slot_10.values.connection_settings.0-value.1-key:"hostname"
    debugger.last_attaches.slot_10.values.connection_settings.0-value.1-value:"someserver0136.somedomain.local"
    debugger.last_attaches.slot_10.values.connection_settings.0-value.2-key:"timeout"
    debugger.last_attaches.slot_10.values.connection_settings.0-value.2-value:"50000"
    debugger.last_attaches.slot_10.values.connection_settings.0-value.length:3
    debugger.last_attaches.slot_10.values.connection_settings.length:1
    debugger.last_attaches.slot_2.attach_type:"Java Debugger (JPDA)"
    debugger.last_attaches.slot_2.display_name:"Attach to someserver0135.somedomain.local:8888"
    debugger.last_attaches.slot_2.values.attaching_connector:"com.sun.jdi.SocketAttach"
    debugger.last_attaches.slot_2.values.connection_settings:# java.util.HashMap
    debugger.last_attaches.slot_2.values.connection_settings.0-key:"com.sun.jdi.SocketAttach"
    debugger.last_attaches.slot_2.values.connection_settings.0-value:# java.util.HashMap
    debugger.last_attaches.slot_2.values.connection_settings.0-value.0-key:"port"
    debugger.last_attaches.slot_2.values.connection_settings.0-value.0-value:"8888"
    debugger.last_attaches.slot_2.values.connection_settings.0-value.1-key:"hostname"
    debugger.last_attaches.slot_2.values.connection_settings.0-value.1-value:"someserver0135.somedomain.local"
    debugger.last_attaches.slot_2.values.connection_settings.0-value.2-key:"timeout"
    debugger.last_attaches.slot_2.values.connection_settings.0-value.2-value:"50000"
    debugger.last_attaches.slot_2.values.connection_settings.0-value.length:3
    debugger.last_attaches.slot_2.values.connection_settings.length:1
    debugger.last_attaches.slot_3.attach_type:"Java Debugger (JPDA)"
    debugger.last_attaches.slot_3.display_name:"Attach to someserver0136.somedomain.local:8888"
    debugger.last_attaches.slot_3.values.attaching_connector:"com.sun.jdi.SocketAttach"
    debugger.last_attaches.slot_3.values.connection_settings:# java.util.HashMap
    debugger.last_attaches.slot_3.values.connection_settings.0-key:"com.sun.jdi.SocketAttach"
    debugger.last_attaches.slot_3.values.connection_settings.0-value:# java.util.HashMap
    debugger.last_attaches.slot_3.values.connection_settings.0-value.0-key:"port"
    debugger.last_attaches.slot_3.values.connection_settings.0-value.0-value:"8888"
    debugger.last_attaches.slot_3.values.connection_settings.0-value.1-key:"hostname"
    debugger.last_attaches.slot_3.values.connection_settings.0-value.1-value:"someserver0136.somedomain.local"
    debugger.last_attaches.slot_3.values.connection_settings.0-value.2-key:"timeout"
    debugger.last_attaches.slot_3.values.connection_settings.0-value.2-value:"50000"
    debugger.last_attaches.slot_3.values.connection_settings.0-value.length:3
    debugger.last_attaches.slot_3.values.connection_settings.length:1
    debugger.last_attaches.slot_4.attach_type:"Java Debugger (JPDA)"
    debugger.last_attaches.slot_4.display_name:"Attach to someserver0137.somedomain.local:8888"
    debugger.last_attaches.slot_4.values.attaching_connector:"com.sun.jdi.SocketAttach"
    debugger.last_attaches.slot_4.values.connection_settings:# java.util.HashMap
    debugger.last_attaches.slot_4.values.connection_settings.0-key:"com.sun.jdi.SocketAttach"
    debugger.last_attaches.slot_4.values.connection_settings.0-value:# java.util.HashMap
    debugger.last_attaches.slot_4.values.connection_settings.0-value.0-key:"port"
    debugger.last_attaches.slot_4.values.connection_settings.0-value.0-value:"8888"
    debugger.last_attaches.slot_4.values.connection_settings.0-value.1-key:"hostname"
    debugger.last_attaches.slot_4.values.connection_settings.0-value.1-value:"someserver0137.somedomain.local"
    debugger.last_attaches.slot_4.values.connection_settings.0-value.2-key:"timeout"
    debugger.last_attaches.slot_4.values.connection_settings.0-value.2-value:"50000"
    debugger.last_attaches.slot_4.values.connection_settings.0-value.length:3
    debugger.last_attaches.slot_4.values.connection_settings.length:1
    debugger.last_attaches.slot_5.attach_type:"Java Debugger (JPDA)"
    debugger.last_attaches.slot_5.display_name:"Attach to someserver0136.somedomain.local:8888"
    debugger.last_attaches.slot_5.values.attaching_connector:"com.sun.jdi.SocketAttach"
    debugger.last_attaches.slot_5.values.connection_settings:# java.util.HashMap
    debugger.last_attaches.slot_5.values.connection_settings.0-key:"com.sun.jdi.SocketAttach"
    debugger.last_attaches.slot_5.values.connection_settings.0-value:# java.util.HashMap
    debugger.last_attaches.slot_5.values.connection_settings.0-value.0-key:"port"
    debugger.last_attaches.slot_5.values.connection_settings.0-value.0-value:"8888"
    debugger.last_attaches.slot_5.values.connection_settings.0-value.1-key:"hostname"
    debugger.last_attaches.slot_5.values.connection_settings.0-value.1-value:"someserver0136.somedomain.local"
    debugger.last_attaches.slot_5.values.connection_settings.0-value.2-key:"timeout"
    debugger.last_attaches.slot_5.values.connection_settings.0-value.2-value:"50000"
    debugger.last_attaches.slot_5.values.connection_settings.0-value.length:3
    debugger.last_attaches.slot_5.values.connection_settings.length:1
    debugger.last_attaches.slot_6.attach_type:"Java Debugger (JPDA)"
    debugger.last_attaches.slot_6.display_name:"Attach to someserver0136.somedomain.local:8888"
    debugger.last_attaches.slot_6.values.attaching_connector:"com.sun.jdi.SocketAttach"
    debugger.last_attaches.slot_6.values.connection_settings:# java.util.HashMap
    debugger.last_attaches.slot_6.values.connection_settings.0-key:"com.sun.jdi.SocketAttach"
    debugger.last_attaches.slot_6.values.connection_settings.0-value:# java.util.HashMap
    debugger.last_attaches.slot_6.values.connection_settings.0-value.0-key:"port"
    debugger.last_attaches.slot_6.values.connection_settings.0-value.0-value:"8888"
    debugger.last_attaches.slot_6.values.connection_settings.0-value.1-key:"hostname"
    debugger.last_attaches.slot_6.values.connection_settings.0-value.1-value:"someserver0136.somedomain.local"
    debugger.last_attaches.slot_6.values.connection_settings.0-value.2-key:"timeout"
    debugger.last_attaches.slot_6.values.connection_settings.0-value.2-value:"50000"
    debugger.last_attaches.slot_6.values.connection_settings.0-value.length:3
    debugger.last_attaches.slot_6.values.connection_settings.length:1
    debugger.last_attaches.slot_7.attach_type:"Java Debugger (JPDA)"
    debugger.last_attaches.slot_7.display_name:"Attach to someserver0136.somedomain.local:8888"
    debugger.last_attaches.slot_7.values.attaching_connector:"com.sun.jdi.SocketAttach"
    debugger.last_attaches.slot_7.values.connection_settings:# java.util.HashMap
    debugger.last_attaches.slot_7.values.connection_settings.0-key:"com.sun.jdi.SocketAttach"
    debugger.last_attaches.slot_7.values.connection_settings.0-value:# java.util.HashMap
    debugger.last_attaches.slot_7.values.connection_settings.0-value.0-key:"port"
    debugger.last_attaches.slot_7.values.connection_settings.0-value.0-value:"8888"
    debugger.last_attaches.slot_7.values.connection_settings.0-value.1-key:"hostname"
    debugger.last_attaches.slot_7.values.connection_settings.0-value.1-value:"someserver0136.somedomain.local"
    debugger.last_attaches.slot_7.values.connection_settings.0-value.2-key:"timeout"
    debugger.last_attaches.slot_7.values.connection_settings.0-value.2-value:"50000"
    debugger.last_attaches.slot_7.values.connection_settings.0-value.length:3
    debugger.last_attaches.slot_7.values.connection_settings.length:1
    debugger.last_attaches.slot_8.attach_type:"Java Debugger (JPDA)"
    debugger.last_attaches.slot_8.display_name:"Attach to someserver0136.somedomain.local:8888"
    debugger.last_attaches.slot_8.values.attaching_connector:"com.sun.jdi.SocketAttach"
    debugger.last_attaches.slot_8.values.connection_settings:# java.util.HashMap
    debugger.last_attaches.slot_8.values.connection_settings.0-key:"com.sun.jdi.SocketAttach"
    debugger.last_attaches.slot_8.values.connection_settings.0-value:# java.util.HashMap
    debugger.last_attaches.slot_8.values.connection_settings.0-value.0-key:"port"
    debugger.last_attaches.slot_8.values.connection_settings.0-value.0-value:"8888"
    debugger.last_attaches.slot_8.values.connection_settings.0-value.1-key:"hostname"
    debugger.last_attaches.slot_8.values.connection_settings.0-value.1-value:"someserver0136.somedomain.local"
    debugger.last_attaches.slot_8.values.connection_settings.0-value.2-key:"timeout"
    debugger.last_attaches.slot_8.values.connection_settings.0-value.2-value:"50000"
    debugger.last_attaches.slot_8.values.connection_settings.0-value.length:3
    debugger.last_attaches.slot_8.values.connection_settings.length:1
    debugger.last_attaches.slot_9.attach_type:"Java Debugger (JPDA)"
    debugger.last_attaches.slot_9.display_name:"Attach to someserver0136.somedomain.local:8888"
    debugger.last_attaches.slot_9.values.attaching_connector:"com.sun.jdi.SocketAttach"
    debugger.last_attaches.slot_9.values.connection_settings:# java.util.HashMap
    debugger.last_attaches.slot_9.values.connection_settings.0-key:"com.sun.jdi.SocketAttach"
    debugger.last_attaches.slot_9.values.connection_settings.0-value:# java.util.HashMap
    debugger.last_attaches.slot_9.values.connection_settings.0-value.0-key:"port"
    debugger.last_attaches.slot_9.values.connection_settings.0-value.0-value:"8888"
    debugger.last_attaches.slot_9.values.connection_settings.0-value.1-key:"hostname"
    debugger.last_attaches.slot_9.values.connection_settings.0-value.1-value:"someserver0136.somedomain.local"
    debugger.last_attaches.slot_9.values.connection_settings.0-value.2-key:"timeout"
    debugger.last_attaches.slot_9.values.connection_settings.0-value.2-value:"50000"
    debugger.last_attaches.slot_9.values.connection_settings.0-value.length:3
    debugger.last_attaches.slot_9.values.connection_settings.length:1
    

    Slots:

    debugger.last_attaches.used_slots:# array
    debugger.last_attaches.used_slots.0:# java.lang.Integer
    debugger.last_attaches.used_slots.0.primitiveWrapper:1
    debugger.last_attaches.used_slots.1:# java.lang.Integer
    debugger.last_attaches.used_slots.1.primitiveWrapper:2
    debugger.last_attaches.used_slots.2:# java.lang.Integer
    debugger.last_attaches.used_slots.2.primitiveWrapper:3
    debugger.last_attaches.used_slots.3:# java.lang.Integer
    debugger.last_attaches.used_slots.3.primitiveWrapper:4
    debugger.last_attaches.used_slots.4:# java.lang.Integer
    debugger.last_attaches.used_slots.4.primitiveWrapper:5
    debugger.last_attaches.used_slots.5:# java.lang.Integer
    debugger.last_attaches.used_slots.5.primitiveWrapper:6
    debugger.last_attaches.used_slots.6:# java.lang.Integer
    debugger.last_attaches.used_slots.6.primitiveWrapper:7
    debugger.last_attaches.used_slots.7:# java.lang.Integer
    debugger.last_attaches.used_slots.7.primitiveWrapper:8
    debugger.last_attaches.used_slots.8:# java.lang.Integer
    debugger.last_attaches.used_slots.8.primitiveWrapper:9
    debugger.last_attaches.used_slots.9:# java.lang.Integer
    debugger.last_attaches.used_slots.9.primitiveWrapper:10
    debugger.last_attaches.used_slots.array_type:java.lang.Integer
    debugger.last_attaches.used_slots.length:10
    debugger.last_attaching_connector:"com.sun.jdi.SocketAttach"
    

    My new Attach Debugger Menu So now I have plenty more saved slots: My new Attach Debugger Menu

    EDIT:

    It turns out that you CAN save debugging sessions like this, but if you create a new, the list is cleared. working on that.