为什么调试包不包含源代码?

我本以为安装了libgtk-3-0-dbg软件包后,当进入gtk+时,DDD会显示源代码,但是我不得不自己下载源代码包(从这里)并将其移动到正确的/build目录下 :(
1个回答

-dbg包不是自动的 - 包维护人员需要定义该包,并向包构建工具传递适当的参数,以确保该包具有任何内容。
按照惯例,但并非实际政策,-dbg包中填充了本应通过GNU strip调用删除的数据,即默认情况下被剥离的调试符号(再次强调,这只是约定,并非政策)。或者对于非ELF库的情况,使用某种特定语言的等效文件(例如.NET库的.mdb文件)。
按照约定,-dbg包不包含源代码(因为我们已经有了包含源代码并使其可用的机制,即apt-get source pkgname)。
Ubuntu具有自动创建"Debug debs"或.ddeb文件的机制,它们在功能上与-dbg包相同,但是由构建服务器自动创建(即,在Ubuntu的服务器上编译的未修改的包而没有-dbg包将自动获得.ddeb文件) - 但是,因为已经有了提供源代码的机制,.ddebs不包含源代码,因为它们不需要。

谢谢Jo!顺便说一句,我尝试过apt-get source libgtk-3-0,但是源码没有被正确安装在能够被调试器自动识别的位置(在/build目录下),它们被安装到了哪里? - knocte
1"apt-get source"解压到当前目录 - directhex
1不必将源代码移动到/build目录,你可以使用"gdb"命令的"directory"选项,将相应的目录添加到gdb的搜索路径中。 - RAOF