Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-dev] New user notes from Phil Brooks at Mentor Graphics

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.








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





-  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





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



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. 




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. 




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)?




- 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


    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



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



- 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.


Back to the top