fixed bz#267533 - NullPointerException at org.netbeans.modules.cnd.debugger.gdb2.GdbHandlerExpert.appendCommandStart
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) {