Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Determining the source of an included symbol in C++

I am currently working on a project which forbids the inclusion of C++'s standard library. One of the compiled files we are using lists the following symbol: _Xran__Q2_3std12_String_baseCFv

I believe this relates to standard library strings. Am I incorrect in thinking so? If not, is anyone aware of an effective way of tracing the point at which this symbol was included? A cursory search of the code base doesn't show anything obvious.

like image 313
Greg Avatar asked Dec 16 '11 22:12

Greg


1 Answers

This doesn't seem to be VC mangling, which always start with a question mark.

It does, however, fit the G++ mangling scheme, as is suggested by running

$ c++filt  --format=gnu "_Xran__Q2_3std12_String_baseCFv"
std::_String_base::_Xran( const(void))

What's weird is that _Xran seems to be part of VC's implementation for std::string.

Anyway, the header you're looking for is probably #include <string>.

EDIT: As a result of c++filt's output - are you sure it is compiled in VC++ ?

like image 56
user1071136 Avatar answered Oct 15 '22 06:10

user1071136