我对设置solib-search-path和sysroot的命令感到困惑,不确定何时使用一个或另一个。就我而言,仅当我同时使用两个命令时才加载符号。是否总是需要这两个命令以及每个命令的作用。
对于这里http://visualgdb.com/gdbreference/commands/,似乎sysroot也在子目录中查找,那么为什么都需要solib-search-path,如果它们都搜索库并从这些库中加载符号
最佳答案
gdb首先搜索sysroot
(具有绝对路径)中的库,然后仅在找不到它们时才搜索solib-search-path
(具有相对路径)。
因此,在使用gdb服务器/远程调试时,您可能只想使用gdb的sysroot
选项。在使用solib-search-path
的Linux系统上,除非您更改sysroot
的值,否则它将不起作用,因为sysroot的默认值为target
,这意味着gdb会加载正在调试的文件系统上找到的so-file。这也是gdb的documentation中指示的内容:
如该thread所示,solib-search-path
的用例是: