Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Language IDEs » C / C++ IDE (CDT) » Problem with symbol discovery in CDT(Discovers symbols it shouldn't, disabling only works temporarily)
Problem with symbol discovery in CDT [message #1071693] Sat, 20 July 2013 22:52 Go to next message
Baldur Gislason is currently offline Baldur GislasonFriend
Messages: 1
Registered: July 2013
Junior Member
I am using a gnu make project, with a hand written makefile.
Basically, the symbol discovery is very broken, while the path discovery works nicely, and there's no way to disable the symbol discovery without disabling the path discovery it seems.
The symbol discovery keeps picking up a symbol that is entered by hand in the makefile, where I run the compiler with a specific symbol to dump a memory map to file.
Line looks like $(CC) $(CFLAGS) -D__NOSTRUCTS -O realtimemap.o realtime.c
and realtimemap.o is not linked in the final process, it's just used for building a memory map of struct members.
Meanwhile, Eclipse thinks __NOSTRUCTS always applies, and any attempts to disable that flag from the list of discovered symbols only works until the list is generated again.
This colours every single source file red in the header and creates red markers for a whole bunch of lines in every single one.

Can anyone point me to a better way to generate an addressed list of the members of a struct in C, than to compile the source file that contains nothing but the struct into a binary, but without the struct around the members?
Failing that, I'd like a way to either disable the symbol discovery or filter out symbols that I want Eclipse to not know about.
Re: Problem with symbol discovery in CDT [message #1072660 is a reply to message #1071693] Tue, 23 July 2013 08:17 Go to previous message
Axel Mueller is currently offline Axel MuellerFriend
Messages: 1973
Registered: July 2009
Senior Member
- Open Project Properties->C/C++ General->Preprocessor..
- In the tab "Providers" enable "CDT User Settings".
- switch to the tab "Entries" and select "CDT User Settings" for GNU C language and then click Add..
- here you can add a preprocessor macro
- unfortunately, there is no way to undef an existing symbol (as far as I know); you can only change the value

Another possibility: How do you build? Do you use make targets? If yes, then you can disable the project builders in the make target for your memory map.

If all fails you can disable in Properties->C/C++ General->Preprocessor..Providers the "GCC build output parser" completely.

Before you ask
- search this forum
- see the FAQ
- google
Previous Topic:Importing CDT Project Build Configurations
Next Topic:QtCore/QMap: No such file
Goto Forum:

Current Time: Mon Apr 23 04:06:48 GMT 2018

Powered by FUDForum. Page generated in 0.02486 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software