fixed bz#267533 - NullPointerException at org.netbeans.modules.cnd.debugger.gdb2.GdbHandlerExpert.appendCommandStart release82
authorMaria Dalmatova <mromashova@netbeans.org>
Thu, 08 Dec 2016 15:54:27 +0300
branchrelease82
changeset 18395fa89675554e4
parent 18394 133dbe3e0841
child 18396 23c0ac76825f
fixed bz#267533 - NullPointerException at org.netbeans.modules.cnd.debugger.gdb2.GdbHandlerExpert.appendCommandStart
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.xml	Sun Dec 04 19:42:56 2016 +0300
     1.2 +++ b/cnd.debugger.gdbserver/nbproject/project.xml	Thu Dec 08 15:54:27 2016 +0300
     1.3 @@ -15,6 +15,15 @@
     1.4                      </run-dependency>
     1.5                  </dependency>
     1.6                  <dependency>
     1.7 +                    <code-name-base>org.netbeans.api.progress</code-name-base>
     1.8 +                    <build-prerequisite/>
     1.9 +                    <compile-dependency/>
    1.10 +                    <run-dependency>
    1.11 +                        <release-version>1</release-version>
    1.12 +                        <specification-version>1.47.1</specification-version>
    1.13 +                    </run-dependency>
    1.14 +                </dependency>
    1.15 +                <dependency>
    1.16                      <code-name-base>org.netbeans.modules.cnd.api.remote</code-name-base>
    1.17                      <build-prerequisite/>
    1.18                      <compile-dependency/>
     2.1 --- a/cnd.debugger.gdbserver/src/org/netbeans/modules/cnd/debugger/gdbserver/Bundle.properties	Sun Dec 04 19:42:56 2016 +0300
     2.2 +++ b/cnd.debugger.gdbserver/src/org/netbeans/modules/cnd/debugger/gdbserver/Bundle.properties	Thu Dec 08 15:54:27 2016 +0300
     2.3 @@ -7,3 +7,4 @@
     2.4  CTL_GdbServerAttachPanel_name=gdbserver
     2.5  GdbServerAttachPanel.projectLabel.text=Project:
     2.6  GdbServerAttachPanel.jLabel1.text=Target:
     2.7 +    GdbServerAttachPanel.progress=Starting gdbserver
     3.1 --- a/cnd.debugger.gdbserver/src/org/netbeans/modules/cnd/debugger/gdbserver/GdbServerAttachPanel.java	Sun Dec 04 19:42:56 2016 +0300
     3.2 +++ b/cnd.debugger.gdbserver/src/org/netbeans/modules/cnd/debugger/gdbserver/GdbServerAttachPanel.java	Thu Dec 08 15:54:27 2016 +0300
     3.3 @@ -50,13 +50,14 @@
     3.4  
     3.5  import java.beans.PropertyChangeListener;
     3.6  import javax.swing.JPanel;
     3.7 +import org.netbeans.api.progress.BaseProgressUtils;
     3.8 +import org.netbeans.api.project.Project;
     3.9  import org.netbeans.modules.cnd.api.remote.RemoteSyncSupport;
    3.10  import org.netbeans.modules.cnd.debugger.common2.debugger.NativeDebuggerInfo;
    3.11  import org.netbeans.modules.cnd.debugger.common2.debugger.NativeDebuggerManager;
    3.12  import org.netbeans.modules.cnd.debugger.common2.debugger.debugtarget.DebugTarget;
    3.13  import org.netbeans.modules.cnd.debugger.common2.debugger.options.DebuggerOption;
    3.14  import org.netbeans.modules.cnd.debugger.common2.debugger.remote.CndRemote;
    3.15 -import org.netbeans.modules.cnd.debugger.common2.ui.ExecutableProjectPanel;
    3.16  import org.netbeans.modules.cnd.debugger.common2.utils.ProjectComboBoxSupport;
    3.17  import org.netbeans.modules.cnd.debugger.common2.utils.ProjectComboBoxSupport.ProjectCBItem;
    3.18  import org.netbeans.modules.cnd.debugger.gdb2.options.GdbDebuggerInfoFactory;
    3.19 @@ -65,6 +66,7 @@
    3.20  import org.netbeans.modules.nativeexecution.api.ExecutionEnvironment;
    3.21  import org.netbeans.spi.debugger.ui.Controller;
    3.22  import org.openide.util.HelpCtx;
    3.23 +import org.openide.util.NbBundle;
    3.24  import org.openide.util.NbPreferences;
    3.25  
    3.26  /**
    3.27 @@ -151,7 +153,7 @@
    3.28  
    3.29          @Override
    3.30          public boolean ok() {
    3.31 -            String targetValue = targetTF.getText();
    3.32 +            final String targetValue = targetTF.getText();
    3.33              if (targetValue.length() == 0) {
    3.34                  return false;
    3.35              }
    3.36 @@ -159,24 +161,32 @@
    3.37              //store last values
    3.38              NbPreferences.forModule(GdbServerAttachPanel.class).put(TARGET_KEY, targetValue);
    3.39  
    3.40 -            ProjectCBItem pi = (ProjectCBItem) projectCB.getSelectedItem();
    3.41 +            final ProjectCBItem pi = (ProjectCBItem) projectCB.getSelectedItem();            
    3.42              if (pi != null) {
    3.43 -                MakeConfiguration conf = ConfigurationSupport.getProjectActiveConfiguration(pi.getProject()).clone();
    3.44 -                DebugTarget dt = new DebugTarget(conf);
    3.45 -                
    3.46 -                // set executable
    3.47 -                String path = conf.getAbsoluteOutputValue().replace("\\", "/"); // NOI18N
    3.48 -                ExecutionEnvironment exEnv = conf.getDevelopmentHost().getExecutionEnvironment();
    3.49 -                path = RemoteSyncSupport.getPathMap(exEnv, pi.getProject()).getRemotePath(path, true);
    3.50 -                dt.setExecutable(path);
    3.51 +                final Project project = pi.getProject();
    3.52 +                BaseProgressUtils.showProgressDialogAndRun(new Runnable() {
    3.53 +                    @Override
    3.54 +                    public void run() {                        
    3.55 +                        MakeConfiguration conf = 
    3.56 +                                ConfigurationSupport.getProjectActiveConfiguration(project).clone();
    3.57 +                        DebugTarget dt = new DebugTarget(conf);
    3.58  
    3.59 -                // always use gdb
    3.60 -                NativeDebuggerInfo gdi = GdbDebuggerInfoFactory.create(dt, 
    3.61 -                        CndRemote.userhostFromConfiguration(conf), conf, NativeDebuggerManager.ATTACH, targetValue);                
    3.62 -                String symbolFile = DebuggerOption.SYMBOL_FILE.getCurrValue(gdi.getDbgProfile().getOptions());
    3.63 -                symbolFile = ((MakeConfiguration) conf).expandMacros(symbolFile);
    3.64 -                gdi.setSymbolFile(symbolFile);
    3.65 -                NativeDebuggerManager.get().debugNoAsk(gdi);
    3.66 +                        // set executable
    3.67 +                        String path = conf.getAbsoluteOutputValue().replace("\\", "/"); // NOI18N
    3.68 +                        ExecutionEnvironment exEnv = conf.getDevelopmentHost().getExecutionEnvironment();
    3.69 +                        path = RemoteSyncSupport.getPathMap(exEnv, project).getRemotePath(path, true);
    3.70 +                        dt.setExecutable(path);
    3.71 +
    3.72 +                        // always use gdb
    3.73 +                        final NativeDebuggerInfo gdi = GdbDebuggerInfoFactory.create(dt,
    3.74 +                                CndRemote.userhostFromConfiguration(conf), conf, 
    3.75 +                                NativeDebuggerManager.ATTACH, targetValue);
    3.76 +                        String symbolFile = DebuggerOption.SYMBOL_FILE.getCurrValue(gdi.getDbgProfile().getOptions());
    3.77 +                        symbolFile = ((MakeConfiguration) conf).expandMacros(symbolFile);
    3.78 +                        gdi.setSymbolFile(symbolFile);
    3.79 +                        NativeDebuggerManager.get().debugNoAsk(gdi);
    3.80 +                    }
    3.81 +                }, NbBundle.getMessage(GdbServerAttachPanel.class, "GdbServerAttachPanel.progress"));//NOI18N
    3.82  //                try {
    3.83  //                    GdbDebugger.attachGdbServer(target, pi.getProjectInformation());
    3.84  //                } catch (DebuggerStartException dse) {