debugging - 如何调试包含在 libtool 脚本中的程序?

标签 debugging gdb libtool

我有一个项目涉及

  • 共享库即:mylib.so
  • (测试)程序使用这些共享库,即:test_mylib

  • 当我尝试运行时 gdbtest_mylib ,它打印:
    "test_mylib": not in executable format: File format not recognized
    

    当我直接使用真实程序( .libs/test_mylib )时,它仍然提示:
    .libs/test_mylib: can't load library 'libhello.so.0'
    

    如何运行 gdb 来调试我的程序?

    最佳答案

    这是我几天前遇到的问题,目前还没有关于 SO 的通用答案。只有特殊情况。这是我在此页面上找到的答案:http://www.gnu.org/software/libtool/manual/html_node/Debugging-executables.html

    在安装程序之前,系统不知道去哪里寻找共享对象。它们通常位于 .libs其源文件夹的子目录。

    Libtool 生成一个方便的脚本以允许在实际安装完成之前进行调试(谁想在之前安装有问题的软件,之后再调试它?)

    幸运的是,生成的脚本为此提供了一个帮助程序:

    libtool --mode=execute gdb test_mylib
    

    关于debugging - 如何调试包含在 libtool 脚本中的程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12148668/

    相关文章:

    java - 为什么在 Eclipse 中使用 "step into"时,即使没有步骤过滤器,也不显示对构造函数的调用

    从 GDB 中查看/打印功能代码

    perl - 使用 Fcntl : Baffling bug involving 'use' and 'require' 锁定文件

    javascript - 如何在 HTML 中调用 JavaScript 函数而不是 href

    profiling - 自动化 gdb : show backtrace every 10 ms

    c - 无法使 libtool 合并 yasm 创建的目标文件

    gtk - Libtool 认为是 "library was moved"但事实并非如此

    msbuild - 为什么 autoconf/automake 项目会链接到已安装的库而不是本地开发库?

    c++ - Netbeans 远程调试 C++ 无控制台输出

    c++ - 无法在共享库中插入断点