0

CUDA could not resolve local variables with names starting on _ZTV

I am debugging a CUDA application with Nsight. Once (and I don't know how) it happened to appear 10 new local variables with stange names, some of them:

_ZTVNSt8ios_base7failureE
_ZTVSt12system_error
_ZTVSt5ctypelcE
_ZTVSt10ctype_base

And others. Sometimes they are just arrays of different length, containing zeros. Sometimes it says "Could not resolve name '...'" for every variable. And if it could not - the app doesn't work. Now the funny thing. Its ability to resolve that names differs. For example:

__global__ void GPUInit(int z)
{
    //Can't resolve names
}

But if I add another function, like this

__global__ void GPUInit2(int z)
{
    //Ok
}
__global__ void GPUInit(int z)
{
    //Ok
}

everyone works. It could happen that we successfully enter a __global__ function, but can't resolve names in a regular __device__ function

Help me, please to figure out what it is and how I can handle it.

talonmies
  • 70,661
  • 34
  • 192
  • 269
  • First, clean everything. Now I wonder if your compiler is mismatched with the system libraries. This can happen because nvcc might not be set to the system's compiler. – Mikhail Oct 22 '15 at 06:10
  • Clean what? And how? All I know is that I do use nvcc. Otherwise, it would't work at all.. – Vitalii Pohribnyi Oct 22 '15 at 06:37
  • 2
    Just FYI: `c++filt _ZTVNSt8ios_base7failureE` gives `vtable for std::ios_base::failure` and `c++filt _ZTVSt12system_error` gives `vtable for std::system_error`... – Gilles Oct 22 '15 at 07:19
  • nvcc wraps gcc, it might be wrapping a misconfigure configured version. – Mikhail Oct 23 '15 at 01:32

0 Answers0