首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gdb在派生线程后无法访问变量

gdb在派生线程后无法访问变量
EN

Stack Overflow用户
提问于 2013-03-13 01:17:39
回答 1查看 2.3K关注 0票数 2

在从旧的开发板迁移到新的开发板(带有ARM cortex A9的iMX6 sabre lite板)后,我正在尝试调试应用程序。我还在主机上运行gdb,在开发板上运行gdbserver,如__answer__section here how can i change the runtime libraries (libc ,ld, etc) used by gdb in cross (ARM) debugging中所述

在尝试运行应用程序并执行创建线程的步骤时,我得到了以下信息:

代码语言:javascript
复制
(gdb) 
681             if (pthread_create(&serial_thread, &attr_detach, read_serial, argv[1]) != 0){
(gdb) 
    Cannot remove breakpoints because program is no longer writable.
    Further execution is probably impossible.
0x00023308 in main (
    argc=<error reading variable: Cannot access memory at address 0x7efffc8c>, 
    argv=<error reading variable: Cannot access memory at address 0x7efffc88>)
    at main_process/main_process.c:681
681             if (pthread_create(&serial_thread, &attr_detach, read_serial, argv[1]) != 0){
    warning: Error removing breakpoint 0
    Cannot access memory at address 0x7efffc88
(gdb) info threads
      Id   Target Id         Frame 
    * 1    Thread 2588.2588  0x00023308 in main (
    argc=<error reading variable: Cannot access memory at address 0x7efffc8c>, 
    argv=<error reading variable: Cannot access memory at address 0x7efffc88>)
    at main_process/main_process.c:681

在那之后我就不能继续调试执行了。如果我简单地遍历代码(而不是单步执行),我将得到

代码语言:javascript
复制
(gdb) c
Continuing.
[Inferior 1 (process 2601) exited with code 0377]

如果我在要创建的线程中添加一个断点,我会让执行在那里暂停,但之后继续执行是不可能的(它也不会退出)。

我了解到线程堆栈的大小可能很小,但它是8MB,并且我只将参数argv1传递给线程。

我使用Linaro gcc-linaro-arm-linux-gnueabi-2012.04-20120426_linux工具链来创建我的应用程序。并且在主板上运行的共享库(在调试时使用)属于LTIB_201204 rootfs。

谢谢你的帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-13 02:05:15

您是否可以首先检查板上是否存在libthread_db.so以及它是否未剥离(检查nm输出)?我从未亲自使用过LTIB,但从第2页可以看到这个Freescale application note

要正确捕获进程事件,如加载共享库或创建线程,实现这些通用功能的共享库必须部署在目标上,并且不能剥离符号。对于Linux用户空间,它们是ld.so、libthread_db.so、libpthread.so,对于i.MX/LTIB的特殊情况,可以在LTIB目标图像生成菜单上实现取消选中的条带选项。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15367815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档