Chinaunix

标题: gdb shared library path [打印本页]

作者: shihyu    时间: 2016-02-23 21:52
标题: gdb shared library path
本帖最后由 shihyu 于 2016-02-23 21:55 编辑

  1. // foo.c
  2. #include <stdio.h>

  3. int foo(int a, int b)
  4. {
  5.     int s = a + b;
  6.     printf("%d\n", s);
  7.     return s;

  8. }
复制代码
  1. // main.c

  2. extern int foo(int a, int b);
  3. int main(int argc, char* argv[])
  4. {
  5.     int s = foo(10, 20);
  6.     return s;
  7. }
复制代码
// Makefile
  1. all: so main
  2. so:
  3.     gcc -g foo.c -shared -fPIC -o libfoo.so
  4. main:
  5.     gcc -g main.c -L./ -lfoo -o test
  6. clean:
  7.     rm -f test *.so
复制代码
就是先编译产生 test执行档跟 libfoo.so , 再把建立两各资料夹src , lib

把程式码 copy main.c & foo.c in src , libfoo.so in lib

使用gdb ./test

预期使用 directory 指定程式码路径 //OK
使用 solib-absolute-prefix & solib-search-path 指定lib 路径 // fail
必须用set env LD_LIBRARY_PATH 才可以指定lib

下面是成功步骤

gdb ./test
directory ./src
set env LD_LIBRARY_PATH ./lib/

问题:
1.为什么 solib-absolute-prefix & solib-search-path 指定lib 不行?

2.
下面四个指令有什么差异?
set solib-absolute-prefix
set solib-search-path
set env LD_LIBRARY_PATH
set debug-file-directory

谢谢




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2