This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi all,
In our design, we create a library CCS4 project with ~10 files with options "-g" to include debug information for the lib. The size of lib is about 5M+. And then we use this lib file in another CCS4 project, after build this CCS4 project, the size of .out file is about 7M. But we experience that we can't load the symbol of the .out file. When loading the symbol for the .out file, CCS4 halt and no response.
But if we remove option "-g" for the library project, the size of lib is ~500kB. And we build the another CCS4 project with this lib, we can load the symbol for this .out file without any problem.
Here we have several question, hope someone can answer them for us. Thanks.
1. Is there any size limitation on symbol tale for a CCS4 project .out file? Is it the root cause that symbol table is too large that lead to the loading the symbol table fail for the .out file. If not so, any thread on this loading the symbol table failure issue for me?
2. Why there are so large size different between "-g" lib and none "-g" lib?
3. For build configuration "Debug", the default debugging model setting is "Full symbolic debug (--symdebug:dwarf, -g)". But I am aware that for build configuration "Release", the default debugging model setting is "Full symbolic debug (--symdebug:dwarf, -g)" too. But in CCS3, there is no debugging information for "Release" build configuration, i.e. no "-g" setting. Why there is full symbolic debug enable for "Release" build configuration in CCS4.2.2?
Hi,
Chen Neville54361 said:1.Is there any size limitation on symbol tale for a CCS4 project .out file? Is it the root cause that symbol table is too large that lead to the loading the symbol table fail for the .out file. If not so, any thread on this loading the symbol table failure issue for me?
It is hard to tell if you hit the limitation, since I personally have built executables with larger sizes in CCS. However, keep in mind the CCS loader sometimes takes a long while to resolve all symbols while loading it to the target.
In any case, can you send the .out file for us to try to reproduce this issue here?
Chen Neville54361 said:2. Why there are so large size different between "-g" lib and none "-g" lib?
The size difference is because the file on the host PC holds all symbolic debug information when using -g - plenty of data to help with debugging. Keep in mind this information is not actually loaded to the target, only the actual code/data.
Chen Neville54361 said:3. For build configuration "Debug", the default debugging model setting is "Full symbolic debug (--symdebug:dwarf, -g)". But I am aware that for build configuration "Release", the default debugging model setting is "Full symbolic debug (--symdebug:dwarf, -g)" too. But in CCS3, there is no debugging information for "Release" build configuration, i.e. no "-g" setting. Why there is full symbolic debug enable for "Release" build configuration in CCS4.2.2?
Leaving the symbolic debug information on simplifies the debugging process even at the final stages of the software development (where Release is usually activated). Since it is configurable, you can manually de-activate this option when the product is released.
Unless you are extremely protective of your IP, leaving some debug information in released software is usually a good idea. The reason is that, if you have an issue with a product in the field, it makes it a lot easier to find the root cause with this information still in place.
In any case the decision is totally up to you - we just leave it enabled by default to ease the development.
Regards,
Rafael