内核不能启动?

大家好,我写了个程序,经过调试,可以运行了,但运行结果的DOS界面上只显示,使用0号设备这一句,我的程序除了main函数,输出函数之外,只有一个RUN函数,对kernel的调用都在里面,在主函数RUN函数前加了printf有显示,但在RUN后面加的输出函数都没反应,如果按CTRL+F5会出现图1的情况,如果是直接按debug键则会出现图2的情况,请问下可能是什么情况啊?还想问调试程序大家认为最管用的方法是什么?哪位大佬写个调试程序的册子吧,肯定好卖的!

谢谢大家,祝大家心想事成。
:o

[ 本帖最后由 zhangarbu 于 2010-7-13 15:53 编辑 ]

太模糊了,看不清楚,不过好像有什么0x**********,可能不可能是越界了?

大哥你说是越界很有可能啊,如果一个数组计算时出现在负值就会越界对吧?如geo[k] 这里面的k 成负值时,还有如果geo是大小为100,k大于100也会越界对吧?
大哥,以上两种情况都会越界对吧?
还有我想问一下,你们平时都怎么调示,有工具没?
谢谢你啊,每每麻烦你,祝你事业有成,事事顺心。

你说的不错,目前cuda的调试工具很少,linux下cuda-gdb可以用,但是功能一般,而且对显卡有限制。win下nv有个什么parallel night。一般我调试就先确定那里出错了,再仔细一句一句代码的看。没办法并行的调试工具太少了。

老大,我找到了两个越界的地方,也改过来了,但是还是有问题, http://cuda.itpub.net/thread-1325667-1-1.html
这是新贴,有图,谢谢你啊!是释放内存错了么?

你仔细研究一下heapFree函数!我也说不好

大哥,问题解决了,谢谢你长久以来的帮助

这种一般都是访问越界的问题