Bug 130436 - Debug option: "Enable seperate terminal for application Io" crashes kdevelop if application "konsole" is not installed
Summary: Debug option: "Enable seperate terminal for application Io" crashes kdevelop ...
Status: RESOLVED FIXED
Alias: None
Product: kdevelop
Classification: Applications
Component: CPP Debugger (show other bugs)
Version: unspecified
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: kdevelop-bugs-null
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-07-07 21:42 UTC by looije
Modified: 2007-01-13 11:12 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description looije 2006-07-07 21:42:35 UTC
Version:            (using KDE KDE 3.5.2)
Installed from:    Ubuntu Packages
OS:                Linux

I noticed that Kdevelop craches using this option:
project->project options->debugger->enable separate terminal for application io
I did not have konsole installed. Installing "konsole" fixed the problem, but I would prefer an error message instead of a kdevelop crash in case konsole is not there:)
Comment 1 Amilcar do Carmo Lucas 2006-09-18 18:26:38 UTC
Anybody knows how to add konsole to the autotolls dependencies ?
Comment 2 Jens Dagerbo 2006-12-16 21:51:40 UTC
The problem isn't directly tied to the 'konsole' application. Any terminal application set in the configuration that doesn't actually exist will lead to the debugger plugin hanging KDevelop.

It should verify that the terminal app actually exists before attempting to use it.
Comment 3 Jens Dagerbo 2007-01-13 11:12:00 UTC
SVN commit 622837 by dagerbo:

Don't hang if the user has configured a non-existing terminal app

BUG: 130436

 M  +5 -0      stty.cpp  


--- branches/kdevelop/3.4/languages/cpp/debugger/stty.cpp #622836:622837
@@ -285,6 +285,11 @@
 {
     QString appName(termApp.isEmpty() ? QString("xterm") : termApp);
 
+    if ( KStandardDirs::findExe( termApp ).isEmpty() )
+    {
+        return false;
+    }
+
     char fifo[] = FIFO_FILE;
     int fifo_fd;
     if ((fifo_fd = mkstemp(fifo)) == -1)