为了使用libasan.so库帮我调查segmentation fault,需查看进行一些设置,其中使用了libasan.so库的路径,

  1. gcc编译程序时加上 -g,这样后面报告问题时可以显示行号。
  2. 使用gccc查看libasan.so库的位置,
1
2
$ gcc -print-file-name=libasan.so
/usr/lib/gcc/x86_64-linux-gnu/11/libasan.so
  1. 设置环境变量LD_PRELOAD
1
export LD_PRELOAD=/usr/lib/gcc/x86_64-linux-gnu/11/libasan.so
  1. 这样每次运行程序时,就会有内存报告,提示内存问题出处。
  2. 如果不想使用了,可使用unset撤销,
1
unset LD_PRELOAD