GPU应用程序Attach调试记录

  1. 前期工作

  2. 工程路径确认

    GPU项目共有6个工程,如图 1-1:

    图 1-1  GPU项目工程

    这6个工程建议放在同一目录下,否则可能调试时会出现奇怪的问题,比如放在IDE默认的workspace目录下,如图 1-2:

    图 1-2  workspace工程目录

  3. 测试程序文件名确认

    例如测试程序工程叫gpu_test,那么主程序所在的文件名必须是gpu_test.c,不然调试时会报出找不到gpu_test.c警告。示例如图 1-3:

    图 1-3  确认测试程序主文件

  4. GDB调试设置

  5. 新建调试项目

  6. 打开测试工程主程序文件

    如图 21:

    图 2-1  打开测试主程序文件

  7. 打开Debug Configurations选项

    如图 2-2所示:

    图 2-2  打开调试配置菜单

  8. 新建SylixOS调试项目

    右击SylixOS Remote Application选项,选择New选项来新建一个SylixOS调试项目,如图 2-3:

    图 2-3  新建调试项目

  9. 选择调试程序

    注意不要选择strip目录下的程序,如图 2-4:

    图 2-4  选择调试程序

  10. 选择attach调试模式

    如图 2-5:

    图 2-5  选择attach调试模式

  11. 添加动态库路径

    一共要添加4个动态库的路径,如图 2-6和图 2-7:

    图 2-6  添加动态库路径

    图 2-7  添加后的动态库

  12. 指定调试程序,开始调试

    前提是测试程序和库都已经下载到目标板上,并且测试程序已经在运行状态,进程ID可以通过在连接到目标板的终端输入ps命令查到。如图 2-8:

    图 2-8  指定进程ID

  13. 调试功能使用

  14. 选择调试功能窗口

    如图 3-1所示:可以按需要选择添加功能窗口,一般常用的是Debug、Breakpoints、Memory、Variables等。

    图 3-1  选择功能窗口

    选择好功能窗口后,还可以根据自己的喜好调整每个窗口的位置,如图 3-2:

    图 3-2  窗口位置调整

  15. 添加断点

    点击想要添加断点的代码行,等蓝色区域出现后,直接双击即可添加一个断点。添加成功后,蓝色区域会出现一个小圆点,并且断点会立即生效,程序运行至此代码行处后会停止,而且此代码行背景色变为绿色,如图 3-3:

    图 3-3  添加断点

  16. 添加多个断点

    添加方法和上个小节一样,并且在Breakpoints区可以对添加的多个断点管理,如图 3-4:

    图 3-4  添加多个断点

  17. 查看变量和寄存器

    当程序运行到断点处时,可以在Variables区查看断点上下文中的变量值,如图 3-5:

    图 3-5  查看变量

    同样,在Registers区查看寄存器的值,如图 3-6:

    图 3-6  查看寄存器

  18. 恢复运行

    如果想要程序再次运行到断点处,按F8即可。如果想要去掉断点运行,在Breakpoints区将断点前面的勾去掉,然后按F8即可。如图 3-7:

    图 3-7  恢复运行

时间: 2024-11-08 18:53:05

GPU应用程序Attach调试记录的相关文章

程序崩溃调试记录和总结

1. 多线程访问共享资源没有加锁 错误提示:Segmentation fault! 解决办法: 多线程读不需要加锁 多线程同时读写则需要加锁 加锁的方法有互斥量.信号量.读写锁.记录锁.互斥量和条件变量结合提供的事件通知机制. C++11里则有,lock_guard,unique_lock.两者都是在构造的时候加锁,析构的时候加锁.但unique_lock提供更多的特性,比如可以指定它在构造的时候不加锁,在需要的时候再调用.lock()加锁.如果和condition_variable结合使用只能

基于freescale i.Mx6(ARM)的阿里云oss调试记录

SS调试记录 1.1 开通oss服务 具体参考以下链接: https://help.aliyun.com/document_detail/31884.html?spm=a2c4g.11186623.6.558.n2g1UA 1.2 SDK安装 在ubuntu下安装,安装步骤如下: 安装CMake 执行以下命令安装CMake. sudo apt-get install cmake 安装第三方库 执行以下命令安装第三方库. sudo apt-get install libcurl4-openssl-

Android KitKat 4.4 Wifi移植之AP模式与网络共享功能调试记录

Tethering技术在移动平台上已经运用的越来越广泛了,它可以把移动设备当做一个接入点,其它的设备可以通过Wi-Fi,USB或是Bluetooth等方式连接到此移动设备.在Android中可以将Wifi设为AP模式作为WLAN接入点,从而与其他设备共享Android的互联网连接.Android成为接入点后,就无法通过WLAN连接使用Android的应用程序访问互联网,但可以通过其他方式如以太网或移动网络访问互联网.此时以太网或移动网络在网络共享(Tethering)中是作为upstream的角

与SVN相关的程序的调试问题【转】

解决eclipse中出现Resource is out of sync with the file system问题. 分析:有时候因为时间紧迫的原因,所以就没去管它,今天再次遇到它,实在看着不爽,所以想了办法解决此问题! 这个问题是由于eclipse中文件不同步引起的.在eclipse中,工程文件是由eclipse自动扫描添加的,如果在外部修改了工程目录中的文件但又关闭了自动刷新功能,则会引起文件不同步,从而搜索时出现Resource is out of sync with the file

Linux下adb驱动问题Linux下使用手机USB调试模式连接ADB进行Android程序的调试

Linux 下adb 驱动问题 Linux下使用手机USB调试模式连接ADB进行Android程序的调试,配置驱动没有Windows来的直观. 具体步骤首先确认手机连接上电脑,lsusb查看下设备记录. [email protected]:~$ lsusb Bus 007 Device 009: ID 18d1:4e12 Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 006 Device 001: ID 1d

linux 下C/C++程序常用调试方法(gdb)

 不管是在开发或者运行过程中,调试保证程序正常运行最基本的手段,熟悉这些调试方式,方便我们更快的定位程序问题所在,提高开发效率. 一 程序正常运行调试 (1)  直接使用gdb 开发过程中最常用的方式,我们可以在其过程中给程序添加断点,监视等辅助手段,监控其行为是否与我们设计相符,比如: (2)      程序已经运行,通过attach附加到进程 二 程序中断后调试 首先简单介绍下linux 下的信号: 软中断信号(signal,又简称为信号)用来通知进程发生了异步事件.进程之间可以互相通过

IOS真机调试记录

首先,登录到http://developer.apple.com/devcenter/ios/index.action,如果已经购买了iPhone Develop Program(iDP),登录进去后,页面右上角会看到如下图所示的页面: 点击第一项:iOS Provisioning Portal,然后会看到下面的页面: 点击进入Certificates,然后看到如下所示的页面: 点击图中的click here to download now,这会下载下来一个AppleWWDRCA.cer文件,这

Ubuntu16.04下写的Qt程序,调试时没问题,运行时偶现崩溃 (需要在运行时生成core dump文件,QMAKE_CC += -g)

记录一下 Ubuntu16.04下写的Qt程序,调试时没问题,运行时偶现崩溃 需要在运行时生成core dump文件 首先在pro结尾里加入 QMAKE_CC += -g QMAKE_CXX += -g QMAKE_LINK += -g 在终端输入 ulimit -c 显示为 0 然后输入 ulimit -c unlimited 继续在终端运行编写的程序 出错后,会在当前目录生成 core 文件 然后在终端执行 “gdb 你的程序名 core” 然后输入 bt 对该错误进行跟踪调试 (gdb)

gdb动态挂运行程序并调试

/* * gdb动态挂运行程序并调试 * 编译程序: * gcc gdb_attach2.c -o gdb_attach2 -g * * 运行程序: * ./gdb_attach2 * * 查看程序进程代号: * ps ax | grep gdb_attach2 * 3973 pts/0 S+ 0:00 ./gdb_attach2 * * 启用gdb挂载程序: * gdb gdb_attach2 3973 * * 在目标位置设置断点 * b gdb_attach2.c:44 * Breakpoi