SSC*_*SSC 5 c c++ debugging gdb remote-debugging
我有一个使用uclibc在MIPS CPU上运行的多进程程序,它使用gcc 4.5.3编译.其中一个进程(名称为"tv")需要链接一个共享库(libtest.so),这也是我编写的."tv"进程用C++编写,libtest.so用C编写.
我也从libtest.so转储elf头,它同时设置了PIC和CPIC标志,所以我认为库的创建是可以的.
当我尝试运行程序时,除了"tv"进程外,所有进程都启动正常.没有错误消息.当我使用ps检查它的状态时,它已成为一个僵尸进程.
我尝试了以下内容
如果我从链接进程中删除了libtest.so,并删除了对libtest.so的任何引用,那么"tv"进程可以毫无问题地运行.
如果我删除对libtest.so的任何引用但是在链接过程中保留libtest.so,那么"tv"进程仍然无法运行.
我试图使用LD_DEBUG = all进行调试,但由于没有有效的输出,它在我的主板上不起作用.
因此我猜想当"tv"进程启动时,当ld尝试加载libtest.so时会出现问题.但我不知道如何调试?我该如何判断libtest.so的哪一部分是否导致问题?
任何建议都是受欢迎的.提前致谢.
归档时间: |
|
查看次数: |
410 次 |
最近记录: |