I am trying to print the elements of a String vector passed as argument of a kernel funcion, using cuPrint function.
The code of the kernel
__global__ void testKernel(string wordList[10000])
{
    //access thread id
    const unsigned int bid = blockIdx.x;
    const unsigned int tid = threadIdx.x;
    const unsigned int index = bid * blockDim.x + tid;
    cuPrintf("wordList[%d]: %s \n", index, wordList[index]);
}
Code from main function to setup execution parameters and launch the kernel
//Allocate device memory for word list
    string* d_wordList;
    cudaMalloc((void**)&d_wordList, sizeof(string)*number_of_words);
    //Copy word list from host to device
    cudaMemcpy(d_wordList, wordList, sizeof(string)*number_of_words, cudaMemcpyHostToDevice);
    //Setup execution parameters
    int n_blocks = (number_of_words + 255)/256;
    int threads_per_block = 256;
    dim3 grid(n_blocks, 1, 1);
    dim3 threads(threads_per_block, 1, 1);
    cudaPrintfInit();
    testKernel<<<grid, threads>>>(d_wordList);
    cudaDeviceSynchronize();
    cudaPrintfDisplay(stdout,true);
    cudaPrintfEnd();
I am getting the error: "Error 44 error : calling a host function("std::basic_string, std::allocator >::~basic_string") from a global function("testKernel") is not allowed D:...\kernel.cu 44 1 CUDA_BF_large_word_list "
What have I missed? Thanks in advance.
 
     
    