首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GNU调试器__text_start ()位于错误的文件路径

问GNU调试器__text_start ()位于错误的文件路径
EN

Stack Overflow用户
提问于 2018-11-25 13:10:46
回答 1查看 125关注 0票数 0

首先,引言:我正在使用Windows for Linux和Gaisler版本的GCC进行交叉编译(在本例中,machine是sparc-gaisler-elf )。

我编写了一个简单的hello程序,用于像这样进行调试

代码语言:javascript
复制
$ sparc-gaisler-elf-gcc -g hello.c -o hello

然后,以GNU调试器(GDB)作为服务器打开特定处理器的模拟器。

代码语言:javascript
复制
$ tsim-leon3 -gdb
...
gdb interface: using port 1234
Starting GDB server. Use Ctrl-C to stop waiting for connection.

在另一个bash会话中,我启动一个远程GDB并连接到服务器。

代码语言:javascript
复制
$ sparc-gaisler-elf-gdb -ex "target extended-remote localhost:1234"
...
Remote debugging using localhost:1234

这个很好用。但是,如果我试图加载hello可执行文件,就会遇到一个问题

代码语言:javascript
复制
$ sparc-gaisler-elf-gdb -ex "target extended-remote localhost:1234" hello
...
Remote debugging using localhost:1234

__text_start () at /opt/bcc-2.0.4-gcc/src/libbcc/shared/trap/trap_table_mvt.S:167
167  /opt/bcc-2.0.4-gcc/src/libbcc/shared/trap/trap_table_mvt.S: No such file or directory.
     in /opt/bcc-2.0.4-gcc/src/libbcc/shared/trap/trap_table_mvt.S
Current language:  auto; currently asm

(gdb) run
The program being debugged has been started already.
Start it from the beginning? (y or n) y

Starting program: /mnt/c/Users/<username>/bcc-2.0.4-gcc/src/examples/hello/hello

Program received signal SIGSEGV, Segmentation fault.
__text_start () at /opt/bcc-2.0.4-gcc/src/libbcc/shared/trap/trap_table_mvt.S:167
167     in /opt/bcc-2.0.4-gcc/src/libbcc/shared/trap/trap_table_mvt.S

现在,对于我的Windows子系统Linux安装程序,我有了它要查找的特定文件

代码语言:javascript
复制
/mnt/c/Users/<username>/bcc-2.0.4-gcc/src/libbcc/shared/trap/trap_table_mvt.S

而不是在/opt/bcc-2.0.4-gcc/...

我怎么能告诉它在哪里能找到这个文件?

更新

我试着按照受雇的俄国人的答案来设置dir

代码语言:javascript
复制
(gdb) dir /mnt/c/Users/<user>/bcc-2.0.4-gcc/src/libbcc/shared/trap
Source directories searched: /mnt/c/Users/<user>/bcc-2.0.4-gcc/src/libbcc/shared/trap:$cdir:$cwd

(gdb) list
162             BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 78 - 7B undefined
163             BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 7C - 7F undefined
164
165             /* trap_instruction 0x80 - 0xFF */
166             /* NOTE: "ta 5" can be generated by compiler. */
167             SOFT_TRAP;                                    !  0 System calls
168             SOFT_TRAP;                                    !  1 Breakpoints
169             SOFT_TRAP;                                    !  2 Division by zero
170             FLW_TRAP;                                     !  3 Flush windows
171             SOFT_TRAP;                                    !  4 Clean windows

(gdb) run
The program being debugged has been started already.
Start it from the beginning? (y or n) y

Starting program: /mnt/c/Users/<user>/bcc-2.0.4-gcc/src/examples/hello/hello

Program received signal SIGSEGV, Segmentation fault.
__text_start () at /opt/bcc-2.0.4-gcc/src/libbcc/shared/trap/trap_table_mvt.S:167
167             SOFT_TRAP;                                    !  0 System calls

尽管它仍然在说/opt/...,但它现在似乎找到了正确的文件。但是,我不知道它为什么会产生分割错误。

EN

回答 1

Stack Overflow用户

发布于 2018-11-25 16:14:16

我怎么能告诉它在哪里能找到这个文件?

使用directory命令。

代码语言:javascript
复制
(gdb) dir /mnt/c/Users/<username>/bcc-2.0.4-gcc/src/libbcc/shared/trap
(gdb) list  # should find the file in the new location

另见源路径和集底体-路径。

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

https://stackoverflow.com/questions/53467789

复制
相关文章

相似问题

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