草庐IT

cuda-gdb

全部标签

c++ - gdb backtrace 没有显示 main() 的完整堆栈跟踪

我正在使用Xalanlibrary.我的程序在Xalan调用中的某处崩溃。我希望看到从main()一直到崩溃点的完整堆栈跟踪。我正在使用以下命令行进行编译g++-oprogram.out-g-O0-lxalan-cmyprogram.out我正在使用“backtracefull”命令并获得以下输出#00xb79313b4inxalanc_1_11::XPath::findRoot(xalanc_1_11::XPathExecutionContext&,xalanc_1_11::XalanNode*,intconst*,int,xalanc_1_11::MutableNodeRefLis

【linux】git和gdb调试工具

在linux下提交代码同步到gitee1.创建一个新的仓库(演示步骤)2.init这两个步骤用于识别提交代码的身份,一个你的名字,一个你的邮箱开启本地仓库克隆本地仓库成功我们将这个仓库拷到了111目录底下.我们发现少了一个.gitignore,因为.gitignore是隐藏文件,所以使用ls-la查看3.gitlog指令用于查看提交状态上面可以看到提交人的信息,以及时间,以及提交备注将上节课写的代码拷贝到当前目录下此时还没有同步到gitee上去4.git三板斧1.gitadd.//将该目录的修改记录同步到本地仓库去2.gitcommit-m+“提交备注”//正式将修改更新到本地仓库根据.git

c++ - sizeof 对 gdb 中数组的引用

intmain(){typedefunsignedchara4[4];a4p1;a4&p2=p1;p2[1]=1;cout编译,启动gdb并在return处设置断点。如果您键入psizeof(p2),gdb将打印8而不是4,如果您启动该程序将打印4。如果您在gdb中编写psizeof(*p2),则输出为4(数组的大小)。我认为这是因为gdb将p2视为指针(引用在后台作为指针实现)。在GDB7.7linuxarch.、ubuntu13.10上使用编译器GCC4.8.2和Clang4.3进行测试这是正确的还是gdb中的错误? 最佳答案

c++ - 没有弃用功能的 CUDA + OpenGL Interop

我之前已经能够通过以下方式在CUDA中填充纹理以用于OpenGL:创建并初始化GL纹理(gl::GenTextures()等)创建GL像素缓冲区对象向CUDA注册PBO在更新/渲染循环中:cudaGraphicsMapResource()与PBO启动内核以更新PBOcudaGraphicsUnmapResource()来自CUDA的PBO加载GL程序,绑定(bind)纹理,正常渲染重复清洗、漂洗。但是,我想知道PBO是否仍然是从内核编写纹理的最佳方式。我看过类似thisone的文章(updatedforv5here)似乎根本没有使用PBO。我看到了一些对cudaTextureObjec

c++ - 在 GDB 中打印子类成员

GDB中是否有一个设置可以自动从基类指针打印一个(C++)子类的所有成员,或者我是否总是必须在取消引用之前将其强制转换为子类指针。那是我不总是想做的:p*(SubClass*)baseClassInstance 最佳答案 setprintobjectshowprintobjectChoosewhethertoprintderived(actual)ordeclaredtypesofobjects.我想setprintobject是您所需要的,但它仅适用于多态类型。http://www.delorie.com/gnu/docs/gdb

c++ - 在执行 CUDA 设备代码时在同一线程中运行主机代码

有没有办法在CUDA设备功能运行时运行主机代码?由于CUDA运行时必须等到设备功能完成,我想知道是否有可能在此期间调用提供的主机功能委托(delegate)。像这样:在>>之前启动线程call对我来说不一样[Overhead,...]。 最佳答案 CUDA内核调用是异步。这意味着在内核实际开始执行之前,控制权返回到进行内核调用的主机线程。因此,您只需将主机代码放在内核调用之后(以及任何其他CUDAAPI调用之前,例如cudaDeviceSynchronize()或cudaMemcpy())。放置在那里的主机代码将与内核同时运行,只要

c++ - 为什么 Eclipse 不使用 GDB 的 pretty-print ?

我在Ubuntu14.04和GDB7.7.1上使用Eclipse4.4.2。我正在尝试在Eclipse调试器中检查一些C++标准库容器的内容。到目前为止我已经尝试过:按照说明进行操作here,我运行了命令svncosvn://gcc.gnu.org/svn/gcc/trunk/libstdc++-v3/python将其复制到/home/myusername/prettyprint。然后我将此文本复制到我的.gdbinit中:pythonimportsyssys.path.insert(0,'/home/myusername/prettyprint/python')fromlibstdc

c++ - CUDA 设备代码中的 constexpr 数组

你能告诉我,有什么方法可以在设备代码中使用constexpr数组吗?根据“CudaCprogrammingguide7.0”,我对constexpr标量没有任何问题,但数组似乎无法编译。下面是一些例子:templateclassLatticeArrangement{};templateclassLatticeArrangement{public:staticconstexprdoublec[19]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18};staticconstexprdoubled=19.0;__host____device__

c++ - 从gdb中模板类的成员函数打印静态变量

我有一个简单的模板类:namespacetest{template>classDB{public:staticDB&instance(){staticDB_instance;return_instance;}private:DB(){};DB(DBconst&){};voidoperator=(DBconst&){};Container_db_internal;};}当我在gdb中调试时,我想查看_db_internal容器,但不知道如何访问它。我试着用gdb写:p'test::DB>::instance()::_instance'._db_internal它给了我:Nosymbol.

c++ - 编译/添加 cuda 代码到现有项目 (CMake)

我正在尝试通过CUDA代码将现有项目的一部分移植到GPU。我知道cmake有选项(find_cuda...)来单独处理.cu文件,但我仍在尝试弄清楚如何在现有项目的上下文中使用这个生态系统。我的问题如下。假设我有一个带有cmake配置文件(CMakeLists)的现有C++项目。目前优雅地(如果可能)包含CUDA内核的做法是什么?CMakeLists能否以某种方式构造,.cu文件仅在GPU存在时才编译?我目前的想法是创建一个单独的文件夹,其中只存在CUDA相关代码,然后将其编译为静态库。是这样吗? 最佳答案 将CUDA文件放在单独的