Community
Participate
Working Groups
A class method symbol name is not returned as a fully qualified c++ name. Only the method name is returned. We should have Class::method() and not method().
Qualified name is a C++ language construct: a variant of "primary expression". Constructing of expressions is beyond the scope of the Symbols service. The service must return whatever the symbols file contains.
If the symbol service returns only the "primary expression" name, the symbol service should provide a command to get the namespace of the symbol. This command may also return which language is the symbol (C, C++, Ada, etc). Regards.
(In reply to comment #2) > If the symbol service returns only the "primary expression" name, the symbol > service should provide a command to get the namespace of the symbol. This > command may also return which language is the symbol (C, C++, Ada, etc). > Regards. Namespace of the symbol is ContainerID. Container flag SYM_FLAG_CLASS_TYPE tells if the container is a class. You don't really need to check symbol language, this should work for any language.
Changing bug status to WONTFIX
When I retrieve the containerId's context of my method symbol, I don't get the context of the class namespace but the context of the compil unit. I should get the class namespace name "Test". 2012-11-08 11:48:50,103 : ---> C 53 Symbols getContext "@S3.18.C10848.509B8779.5CC.0.0.-1.0.0.0.P7822" 2012-11-08 11:48:50,112 : <--- R 53 None None {"ID":"@S3.18.C10848.509B8779.5CC.0.0.-1.0.0.0.P7822","OwnerID":"P7822","UpdatePolicy":0,"Name":"fct5","TypeClass":8,"TypeID":"@P4.0.0.@S3.18.C10848.509B8779.5CC.0.0.-1.0.0.0.P7822","BaseTypeID":"@S4.18.C10848.509B8779.FFFFFFFFFFFFFFFF.0.0.-1.0.0.0.P7822","ContainerID":"@S5.18.C10848.509B8779.B.0.0.-1.0.0.0.P7822","Size":58,"Address":4196580,"Flags":32768,"Class":3} 2012-11-08 11:48:50,134 : ---> C 54 Symbols getContext "@S5.18.C10848.509B8779.B.0.0.-1.0.0.0.P7822" 2012-11-08 11:48:50,141 : <--- R 54 None None {"ID":"@S5.18.C10848.509B8779.B.0.0.-1.0.0.0.P7822","OwnerID":"P7822","UpdatePolicy":0,"Name":"src/cppTest.cpp","TypeID":"@S5.18.C10848.509B8779.B.0.0.-1.0.0.0.P7822","Size":1223,"Class":5}
(In reply to comment #5) > When I retrieve the containerId's context of my method symbol, I don't get > the context of the class namespace but the context of the compil unit. I > should get the class namespace name "Test". This looks like a bug. I will investigate.
I have committed a fix. ContainerID of class members now points to the class object. Thanks!