debugging - 如何在 ubuntu 上使用调试库

标签 debugging ubuntu webkit gtk

我目前的问题是 libwebkitgtk-3.0-0,但我想这个问题已经足够通用了。

我的应用程序在 webkit 代码的某个地方崩溃了。我的假设是我们正在做一些愚蠢的事情并想找出什么。最简单的事情是设置断点或使用库的调试版本。

  • 如何获得使用哪个库构建的确切源代码?我在转储核心后得到堆栈跟踪,但行号 gdb 说与我在代码中看到的不匹配。换句话说,如果我安装 libwebkitgtk-3.0-0,我想获得它的确切源代码。
  • 我已经安装了 webkit 库的调试版本。这些调试版本是否具有与使用 --enable-debug 标志编译 webkit 相同的功能? webkit 的调试版本启用基于 WEBKIT_DEBUG 环境变量的日志记录,但即使使用库的调试版本,我也无法获得相同的日志记录。
  • 如何使用我设法编译的调试版本?我设法在我的机器上编译 webkit 并尝试摆弄加载路径等。无论我做什么,我的应用程序都不会选择新的共享库 - 我可以根据用户代理签名进行判断。有一次,我设法拿起了图书馆,但 SSL 停止工作。 GtkLauncher 确实会发生同样的 SSL 问题。所以我在某处犯了错误。

  • 谢谢指点。

    最佳答案

    1) 当我需要深入研究我通过包安装的库时,我做的第一件事就是从源代码安装它。我的意思是配置/制作/制作安装。我通常将源代码放在/usr/local/src 并将其安装在/usr/local 。在我看来,这是运行您拥有源代码的确切代码的最可靠方法。

    3)

    How to use the debug version I managed to compile?



    这听起来像你做了我上面描述的。您需要做的是确保您的软件正在使用托管已编译、启用调试的库的包含和链接目录。这意味着确保 -I/usr/local/include 和 -L/usr/local/lib 标志被设置,并且它们出现在/usr/include 和/usr/lib 之前。

    通过从 ubuntu 安装中删除库的二进制版本,您可以更加确定,确保您构建和安装的版本是硬盘上存在的唯一版本。通过这种方式,您将确定您能够配置您的应用程序以使用该库。否则它只会失败,而不是你不断地想知道它是使用新库还是旧库。

    2) 通常是。但这取决于库的编写方式,以及 ubuntu 打包程序决定做什么。

    使用本地构建的库编译程序后,首先查看是否遇到完全相同的错误。如果不是,那么这也是一个数据点。也许自从 ubuntu 上次打包库以来问题就得到了解决。也许库没有正确打包,这就是问题所在。您甚至可能会遇到新的错误,因为 ubuntu 打包程序以某种方式配置了库,以便它可以工作,而您没有做同样的事情。无论如何,您都会获得有趣的线索。

    祝你好运

    关于debugging - 如何在 ubuntu 上使用调试库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14344654/

    相关文章:

    css -::-webkit-scrollbar-button 内容

    xcode - 如何跟踪导致运行时错误的行?

    c# - Debugger.Launch() 不工作

    linux - 为什么 apt-get purge 几乎删除了我的整个 ubuntu?

    php - Ubuntu 14.04 apache2 配置问题

    webkit - 如何创建网站的缩略图?

    ios - 错误 : message sent to deallocated instance in

    Xcode 调试器不再显示有问题的行,而是始终显示 UIApplicationMain

    bash - 从 MATLAB 调用 Anaconda 环境 : Conda Command Not Found

    css - 如何在 Android 浏览器中实现平滑(硬件加速)转换?