Here are some notes/questions kept by Phil Brooks at Mentor
Graphics while evaluating CDT. I don’t know if Phil is on this mailing
list, so, if you reply, please CC: phil_brooks@xxxxxxxxxx.
Regards,
Leo
------------------------------------------------------------------
I am trying to note naive
user issues that I run into since these can be
difficult for the developers
who just know where everything is to find without
spending lots of money and
time doing usability studies.
Here are some areas that
seem clunky or difficult in Eclipse CDT to me. For
background, I have been a
C/C++ developer for about 15 years and have used
MS Developer Studio for part
of that. The rest of the time I have used vi,
vim, gdb, ddd, a brief stint
with emacs, tried to get Kylix to fly (to no
avail).
Building
--------
- build all... doesn't do
anything if it thinks you don't have anything to
do. For example, if my
build fails because of a tool problem that I can fix,
when I fix the problem, I
can't rebuild without making some pointless change
that makes the IDE think I
really do need to build. Build all should always
launch make and do the
build.
- build project ... will do
a 'make clean all' for a newly created standard make
project - why? I expected
it to just do a make all like it does after the
first build.
- Why doesn't the IDE save
all of my files when I say to do a build?
Everything from MS Studio to
VIM saves files when you do a build. Is there an
option to turn this on
somewhere? Seems like it should be on by default.
- I tried to change the
preference for 'always run builds in the background'
while the build was running
and it locked Eclipse up solid. I have done this
twice now.
- I don't seem to be able to
get the build to run in the background
consistently. Seems like
this should be the default.
- I should be able to cancel
a build when it is running in the background. I
can't seem to. - OK found it
with the progress window. You might make that
more obvious by default.
Build Project should be
available to me even when I don't have the
Finding Stuff
-------------
I always have to look for
about 5 minutes to find Window->Preferences. It
seems like it ought to be
Edit->Preferences or under Project->Preference
somewhere. There is a lot
of stuff in that dialog, it doesn't need to be
hidden.
Debugging
---------
In trying to run the
debugger, I am having a difficult time figuring out
how to point a Standard Make
project at an executable. I found Run->Debug...
C/C++ Local Application. I
can't figure out how to put in an executable.
OK - Found the New button -
things look better now. The "Perspectives" thing
is the focus of that dialog
and New is probably what people are usually going
to want. Try to rearrange
the dialog so that New has a more central focus.
Perhaps another tabbed
window in front of Perspectives that has the New button
on it along with a blank for
the executable location.
I am also having difficulty
adding a breakpoint. I think I should be able
to add a breakpoint by
function name in the Breakpoints window - can't find a
way. I am looking for
something like a + icon above the list area. Also, is
it possible to type gdb
commands anywhere - a la ddd?
- On any 64 bit executable,
I get the message:
"CPU is not
supported by selected debugger"
Looks like this has been
filed as a bug (85124) on the Eclipse-cdt project,
but marked WORKSFORME . I
added a comment. This happens any time I point
it at a 64 bit execuable.
I wonder of WORKSFORME was using a 32 bit
executable?
file lookup - Why do I need
a source lookup path when ddd and gdb don't
need one? CDT should be
able to do at least as well as ddd in finding
source files - maybe better
if it can rummage around in the list of files
that are in the project
window. One scenario that I think you should
support well is the 'eclipse
as a better ddd' scenario. I should be able
to fire up eclipse, get the
Debug... dialog, fill some stuff in and run
my executable and have full
debugging functionality.
Why doesn't the delete key
remove the selected source lookup path in the
Edit Source Lookup Path?
When I detach the windows
like Variables, Debug, etc, I don't get the
mouse-over help popups any
more. Also, I can't seem to dock them back
into the main window any
more. OK - I see now, I was trying to dock a
group of windows and not one
tabbed window at a time.
When my application is
running, I expect to be able to interrupt it
from the debugger. Similar
to ^C in gdb or ddd. I don't see a way
to do this. In fact, the
resume button is still active. I click it
just to be evil and it seems
to run again? I am expection the
pause button || to do this,
but it always seems to be inactive.
I don't seem to have a stack
window anywhere, can't find it - the
program is running. I am
looking in: various windows that are up,
and down inside the
"Window" menu. No stack is pretty much a
show stopper. -OK -found it
the 'Debug' window is the 'Stack'. Kind of
neat, but it was hard to
find.
The console seems to be
shared in some strange way between my application
and gdb. I wish they each
had their separate windows. Is there a way?
Once gdb takes over, I can't
type commands to my app command line any more.
Are there any keyboard
shortcuts for stepping, nexting, etc? They
should be on the help popups
if there are.
For a while, I had a version
of gdb that would crash for 32 bit builds
but run OK for 64 bit builds
- some sort of build incompatibility that
I am persuing separately.
The problem was that CDT didn't handle it
very well. I got:
When my debug executable
stops running, it seems like I should switch
back to the perspective that
I was in before I started debugging.
Eclipse
-------
Can I put paned windows into
a separate window? They seem to want to be
tabs only when I put them in
a separate window. Panes only seem possible
in the main window.
When I switch to the debug
perspective again, it puts some external windows in a
different place.
General
-------
I see way to much stuff
about Java and Ant, etc. I know this was developed
initially as a Java IDE, but
I don't do java and would like to be able to run
without seeing that stuff
taking up space on the screen. Is there a way to
remove the Java plugin (or
at least its outward manifestations)?
Indexer
-------
- I included a test
directory in with my source directory - not easy to figure
out how to get it out
indexer seems a bit enthusiastic.
- removed test directory
from Debug directory - build all wouldn't work any
more - no feedback -
just tried Project->Build All with no response.
Managed Make
------------
- Something really weird
happens in the shell to the Debug directory when I do
a clean build. Does it
get deleted? I end up with an empty directory, but
if I cd ..; cd Debug
everything is there again.
- Is there any way to
leverage build settings? (i.e. between Release and
Debug). Is there any way
to configure for multiple platforms? Just more
flavors of
Debug-Intel-x86-32 Release-Intel-x86-32 etc? Perhaps variables
do this?
- false start with finding
where build runs from (i.e. Debug directory) -
possibly make this more
clear on "Directories" dialog?
- How do I put a subset of
the files in a directory into a project? - found
answer (From Leo
Treggiari).
1. Create a new CDT
project in an empty directory.
2. To add the files in
a separate directory to the project, select
New->File.
3. In the New File
dialog box, click on the Advanced>> button and check
the "Link to
file in the file system box".
4. Click the Browse...
button and select the file.
5. Type the name of the
file into the "File Name" edit box and select
"Finish".
The linked file option
should allow relative links (it refuses to accept
../src/foo.C as a link
source).
The 'link to file' option
should be vastly more accessible, possibly as a
question in the wizard.
The 'link to file' option
should replicate the name of the destination
file in the filename spot
and provide a mechanism for selecting a large number
of files in one go.
I added a variable to get
around the lack of support for relative links and
now I can't find where it is
stored or how to change it. The whole notion of
setting up variables is a
bit foggy to me in looking through the gui.
Searching for help on
variables doesn't give me much either.
- What files do I need to
check in to source control? (.cdtbuild and .cdtproject?)
why are these files
hidden? What about the workspace?
- Lex/Yacc issues - added a
custom build step, C++ output file was built automatically,
builder decided that
generated source files were in src subdirectory why?
- seems to be a problem
with the LEX output file - what directory is it building in?
- copy/paste of
transcripted command works, but build can't find an include file:
Building file:
src/verilog_lex.cpp
Invoking: GCC C++ Compiler
c++ -DSTDCC=std:: -Dvco_aol
-DNOLIC -I. -I.. -I../src -Isrc -O0 -g -Wall
-c -fmessage-length=0 -Wsynth -fcheck-new -Wno-deprecated -osrc/verilog_lex.o
src/verilog_lex.cpp
../src/verilog.l:31:26:
verilog_yacc.h: No such file or directory
- If I do a clean
build, the above failure is reported.
- If I make a
trivial edit to the Lex .l file, then do build all
- oops, I have
to save the file first - why?
If I make a
trivial edit and save the Lex .l file, and do a build all,
-> The build
that previously failed succeeds.
OK - problem is build
ordering - how do I tell it that YACC file needs to go before LEX file?
- tried using
"additional input files" but that is relative to project directory,
not
build directory.
OK - put both LEX and YACC
rules into one build step - seems to invoke YACC twice??
OK - seems to work better
as a "pre-build" step, but then the .cpp files don't get built.
OK - seems to be a bug in
CDT regarding macros in custom build steps. see mail from Mikhail
Sennikovsky.
- Why can't I do
right-click->build on the C/C++ Projects window?
- Why can't I do
rignt-click->build on a single file?
- "build all"
often refuses to do anything. Seems like it should try again building
things that previously
failed. I have to end up doing
edit/save/build/unedit
loops to build.