在Linux下面的动态库调试,特别是利用宿主应用程序来调试,对于某些情况下不能获得宿主应用程序代码,只有可执行文件时非常有用。先分享之。
1,对于动态库project和宿主应用project在同一个workspace下,调试非常方便,直接F8(菜单【Debug】-->【Start】)即可。注意debug模式下,直接点Run并不会进入Debug状态,而仅仅是Debug版本的运行。
2,对于宿主应用程序无代码,仅仅是一个可执行文件时,激活当前动态库project,点击 菜单【Project】-->【Set programs' arguments...】。弹出对话框,在【Host application:】栏输入或者选择应用程序,注意如果带参数的话,一定要把参数输入在【Program argument】栏中,而不是直接跟在【Host application:】栏中的应用程序名后面。
另外一个重要的问题是,如果宿主应用程序需要打开某些磁盘文件,而应用程序设定的是相对目录,这些相对的位置会转到动态库的相对位置,比如程序A运行时默认打开同目录下的B.txt。在调试动态库的时候,B.txt就应该放在你的.so所在目录,而A可执行文件放在哪里都没关系。