Didii
Didii

Reputation: 1363

Visual Studio 2010 debugger points to wrong line

The debugger in Visual Studio 2010 is recently pointing at the wrong lines and/or skipping lines and I have no idea why this is. This is a CUDA project and only happens in CUDA files. I've noticed the following:

What I have tried:

I've managed to reduce the code to the following which might reproduce the problem. Mind that this code has to be inside a .cu-file and most probably needs to be compiled with the cuda compiler for C/C++. Including boost is not really necessary, but this example does show what problems I'm having. A shorter example is at the back.

#include <boost/numeric/ublas/matrix.hpp>
using boost::numeric::ublas::matrix;

struct foo {
    foo() : mat(NULL) {}
    matrix<float>* mat;
};

bool func(foo *data) {
    bool status; // <- skipped line

    status = false;
    if (status) {
        std::cout << "test\n";
        return (status); // <- error reported here
    }

    int size = data->mat->size1(); // instead of here

    return status;
}

int main(int args, char* argv[]) {
    func(NULL); // force error by passing NULL pointer

    return 0;
}

Does anyone have any idea how to solve this or how this could be happening? It's pretty annoying having to debug this way.


Shorter example only showing the skipping lines. No external libraries necessary.

bool func() {
    bool status; // <- skipped line
    status = false;
    return status;
}

int main(int args, char* argv[]) {
    func();
    return 0;
}

Upvotes: 1

Views: 914

Answers (1)

Khouri Giordano
Khouri Giordano

Reputation: 1461

Since the program only contains CPU instructions and variable declarations of types that have no construction contain no instructions, the debugger will not stop there. It just executes instructions and then uses the debugging information that the compiler provided to find the relevant line of source code.

Upvotes: 2

Related Questions