has no value at the target location.

在核函数中调试时,有些很怪异的现象,在变量的生命周期内,有的变量可查看值,有的查看不了;有的变量执行之后可以立即查看到值,有的变量要向下执行几行后才能查看到值,请问这是怎么回事?
for ( int index = tid + bid * THREAD_NUM ; index < nPixels; index += THREAD_NUM * BLOCK_NUM)
{
int j = index / wid; // row
int i = index - j * wid; // col

		double X = m_Boundary.Xmin + i * M;
		
		double Y = m_Boundary.Ymin + j * M;

		int nx = (int)((X - dem_X0 ) / dem_DX ); // dem_X0 dem起点在地面坐标系中的 X 坐标
		int ny = (int)((dem_Y0 - Y) / dem_DY );  // dem_Y0 dem起点在地面坐标系中的 Y 坐标

}
比如 当我执行到 int nx 行时,X的值才能查看,而 i ,j 值又查看不了了

楼主您好,这个是正常现象。

目前nsight的-G编译效果还不是很调试友好,例如你说的这些:有的变量定义后实际上还是不存在的(需要到时候);有的变量的实际第一次实际使用和你写的顺序不同,可能被提后;有的变量不用了就立刻干掉,虽然是-G编译的,理论上说不用也要保留(为了方便调试)。

这些用惯了VC的人可能无法忍受(它在debug模式下总是只要定义就存在,位置丝毫不改变,不用了也还有),也许以后的-G编译会提供更好的效果。建议等待新版本(您也只能等待)