fixed bz#267533 - NullPointerException at org.netbeans.modules.cnd.debugger.gdb2.GdbHandlerExpert.appendCommandStart
authorMaria Dalmatova <mromashova@netbeans.org>
Thu, 08 Dec 2016 15:54:27 +0300
changeset 18398995611fef0d5
parent 18397 0f6ff4e8e09f
child 18399 7b200e0d94ca
child 18401 74b304e4e503
fixed bz#267533 - NullPointerException at org.netbeans.modules.cnd.debugger.gdb2.GdbHandlerExpert.appendCommandStart
cnd.debugger.gdbserver/nbproject/project.properties
cnd.debugger.gdbserver/nbproject/project.xml
cnd.debugger.gdbserver/src/org/netbeans/modules/cnd/debugger/gdbserver/Bundle.properties
cnd.debugger.gdbserver/src/org/netbeans/modules/cnd/debugger/gdbserver/GdbServerAttachPanel.java
     1.1 --- a/cnd.debugger.gdbserver/nbproject/project.properties	Sun Dec 04 19:42:56 2016 +0300
     1.2 +++ b/cnd.debugger.gdbserver/nbproject/project.properties	Thu Dec 08 15:54:27 2016 +0300
     1.3 @@ -2,4 +2,4 @@
     1.4  javac.compilerargs=-Xlint -Xlint:-serial
     1.5  nbm.homepage=http://wiki.netbeans.org/GdbServer
     1.6  nbm.module.author=Egor Ushakov
     1.7 -spec.version.base=2.4
     1.8 +spec.version.base=2.6
     2.1 --- a/cnd.debugger.gdbserver/nbproject/project.xml	Sun Dec 04 19:42:56 2016 +0300
     2.2 +++ b/cnd.debugger.gdbserver/nbproject/project.xml	Thu Dec 08 15:54:27 2016 +0300
     2.3 @@ -15,6 +15,15 @@
     2.4                      </run-dependency>
     2.5                  </dependency>
     2.6                  <dependency>
     2.7 +                    <code-name-base>org.netbeans.api.progress</code-name-base>
     2.8 +                    <build-prerequisite/>
     2.9 +                    <compile-dependency/>
    2.10 +                    <run-dependency>
    2.11 +                        <release-version>1</release-version>
    2.12 +                        <specification-version>1.47.1</specification-version>
    2.13 +                    </run-dependency>
    2.14 +                </dependency>
    2.15 +                <dependency>
    2.16                      <code-name-base>org.netbeans.modules.cnd.api.remote</code-name-base>
    2.17                      <build-prerequisite/>
    2.18                      <compile-dependency/>
     3.1 --- a/cnd.debugger.gdbserver/src/org/netbeans/modules/cnd/debugger/gdbserver/Bundle.properties	Sun Dec 04 19:42:56 2016 +0300
     3.2 +++ b/cnd.debugger.gdbserver/src/org/netbeans/modules/cnd/debugger/gdbserver/Bundle.properties	Thu Dec 08 15:54:27 2016 +0300
     3.3 @@ -7,3 +7,4 @@
     3.4  CTL_GdbServerAttachPanel_name=gdbserver
     3.5  GdbServerAttachPanel.projectLabel.text=Project:
     3.6  GdbServerAttachPanel.jLabel1.text=Target:
     3.7 +    GdbServerAttachPanel.progress=Starting gdbserver
     4.1 --- a/cnd.debugger.gdbserver/src/org/netbeans/modules/cnd/debugger/gdbserver/GdbServerAttachPanel.java	Sun Dec 04 19:42:56 2016 +0300
     4.2 +++ b/cnd.debugger.gdbserver/src/org/netbeans/modules/cnd/debugger/gdbserver/GdbServerAttachPanel.java	Thu Dec 08 15:54:27 2016 +0300
     4.3 @@ -50,6 +50,8 @@
     4.4  
     4.5  import java.beans.PropertyChangeListener;
     4.6  import javax.swing.JPanel;
     4.7 +import org.netbeans.api.progress.BaseProgressUtils;
     4.8 +import org.netbeans.api.project.Project;
     4.9  import org.netbeans.modules.cnd.api.remote.RemoteSyncSupport;
    4.10  import org.netbeans.modules.cnd.debugger.common2.debugger.NativeDebuggerInfo;
    4.11  import org.netbeans.modules.cnd.debugger.common2.debugger.NativeDebuggerManager;
    4.12 @@ -64,6 +66,7 @@
    4.13  import org.netbeans.modules.nativeexecution.api.ExecutionEnvironment;
    4.14  import org.netbeans.spi.debugger.ui.Controller;
    4.15  import org.openide.util.HelpCtx;
    4.16 +import org.openide.util.NbBundle;
    4.17  import org.openide.util.NbPreferences;
    4.18  
    4.19  /**
    4.20 @@ -150,7 +153,7 @@
    4.21  
    4.22          @Override
    4.23          public boolean ok() {
    4.24 -            String targetValue = targetTF.getText();
    4.25 +            final String targetValue = targetTF.getText();
    4.26              if (targetValue.length() == 0) {
    4.27                  return false;
    4.28              }
    4.29 @@ -158,24 +161,32 @@
    4.30              //store last values
    4.31              NbPreferences.forModule(GdbServerAttachPanel.class).put(TARGET_KEY, targetValue);
    4.32  
    4.33 -            ProjectCBItem pi = (ProjectCBItem) projectCB.getSelectedItem();
    4.34 +            final ProjectCBItem pi = (ProjectCBItem) projectCB.getSelectedItem();            
    4.35              if (pi != null) {
    4.36 -                MakeConfiguration conf = ConfigurationSupport.getProjectActiveConfiguration(pi.getProject()).clone();
    4.37 -                DebugTarget dt = new DebugTarget(conf);
    4.38 -                
    4.39 -                // set executable
    4.40 -                String path = conf.getAbsoluteOutputValue().replace("\\", "/"); // NOI18N
    4.41 -                ExecutionEnvironment exEnv = conf.getDevelopmentHost().getExecutionEnvironment();
    4.42 -                path = RemoteSyncSupport.getPathMap(exEnv, pi.getProject()).getRemotePath(path, true);
    4.43 -                dt.setExecutable(path);
    4.44 +                final Project project = pi.getProject();
    4.45 +                BaseProgressUtils.showProgressDialogAndRun(new Runnable() {
    4.46 +                    @Override
    4.47 +                    public void run() {                        
    4.48 +                        MakeConfiguration conf = 
    4.49 +                                ConfigurationSupport.getProjectActiveConfiguration(project).clone();
    4.50 +                        DebugTarget dt = new DebugTarget(conf);
    4.51  
    4.52 -                // always use gdb
    4.53 -                NativeDebuggerInfo gdi = GdbDebuggerInfoFactory.create(dt, 
    4.54 -                        CndRemote.userhostFromConfiguration(conf), conf, NativeDebuggerManager.ATTACH, targetValue);                
    4.55 -                String symbolFile = DebuggerOption.SYMBOL_FILE.getCurrValue(gdi.getDbgProfile().getOptions());
    4.56 -                symbolFile = ((MakeConfiguration) conf).expandMacros(symbolFile);
    4.57 -                gdi.setSymbolFile(symbolFile);
    4.58 -                NativeDebuggerManager.get().debugNoAsk(gdi);
    4.59 +                        // set executable
    4.60 +                        String path = conf.getAbsoluteOutputValue().replace("\\", "/"); // NOI18N
    4.61 +                        ExecutionEnvironment exEnv = conf.getDevelopmentHost().getExecutionEnvironment();
    4.62 +                        path = RemoteSyncSupport.getPathMap(exEnv, project).getRemotePath(path, true);
    4.63 +                        dt.setExecutable(path);
    4.64 +
    4.65 +                        // always use gdb
    4.66 +                        final NativeDebuggerInfo gdi = GdbDebuggerInfoFactory.create(dt,
    4.67 +                                CndRemote.userhostFromConfiguration(conf), conf, 
    4.68 +                                NativeDebuggerManager.ATTACH, targetValue);
    4.69 +                        String symbolFile = DebuggerOption.SYMBOL_FILE.getCurrValue(gdi.getDbgProfile().getOptions());
    4.70 +                        symbolFile = ((MakeConfiguration) conf).expandMacros(symbolFile);
    4.71 +                        gdi.setSymbolFile(symbolFile);
    4.72 +                        NativeDebuggerManager.get().debugNoAsk(gdi);
    4.73 +                    }
    4.74 +                }, NbBundle.getMessage(GdbServerAttachPanel.class, "GdbServerAttachPanel.progress"));//NOI18N
    4.75  //                try {
    4.76  //                    GdbDebugger.attachGdbServer(target, pi.getProjectInformation());
    4.77  //                } catch (DebuggerStartException dse) {