gpt4 book ai didi

windbg - Linux 上的 PDB 符号服务器

转载 作者:行者123 更新时间:2023-12-04 23:43:38 24 4
gpt4 key购买 nike

如何在运行 HTTP 服务器的 Linux 机器上设置符号服务器以与 WinDbg 和 friend 一起使用?

上游符号服务器 provided by Microsoft are HTTP servers (例如 http://msdl.microsoft.com/download/symbols )并且我想模仿他们的行为并启用通常的 Win32 调试器从我自己的下载符号。

如何在不模拟 Windows 的零碎部分(例如通过 Wine 或 KVM)的情况下实现这一点?

最佳答案

如果你还没有,你可能想复习how to create a symbol store on Windows因为要在 Linux 上创建一个,您需要创建一个兼容的文件结构。

首先,重要的是要注意通过 http 共享符号服务器一点也不特别。创建符号存储后,只需将其放在可通过 http 访问的某个位置即可。所以,真正重要的是 symstore.exe 的工作。做。

我知道您不想接受使用仿真的想法,但您确实有 2 个选择:

  • 直接执行symstore.exe在使用 Wine 之类的 Linux 机器上。 (我不知道 KVM 在这里工作得如何。)
  • 重新创建 symstore.exe 的功能你需要使用的。

  • 重新创建 symstore.exe如果您不想使用其任何更高级的功能(如事务、文件链接或多个用户能够导入),则可以非常简单。
    symstore.exe 的简化 View 做:
  • 在输出子目录中创建一个子目录,每个子目录的名称为 pdb进口的。
  • 散列 pdb文件并使用哈希名称创建一个子文件夹。
  • 复制pdb到哈希目录,可以选择压缩它。 (或者,根据标志,将文件 file.ptr 存储在导入 pdb 的位置。)
  • refs.ptr 添加一行在哈希目录中,包含有关导入的 PDB 的一些信息。 (我不相信这个文件实际上被客户端使用,dgbhelp.dll,所以这一步可以省略。)
  • 更新 [output directory]\000Admin 中的文件支持交易之类的东西。 (同样,这只是为了将来运行 symstore.exe 。)
  • 触动pingme.txt在输出文件夹中。

  • (更多信息 here 。)

    这听起来并不太复杂,但毫无疑问,它可能需要一些时间才能正确。首先,您可能想看看 Mozilla's build script哪些地方 pdb s 在 Windows 调试器知道如何读取的结构中。更多关于它的信息可用 here .

    关于windbg - Linux 上的 PDB 符号服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21200573/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com