2015-06-26 65 views
1

我有使用外部C++庫的Qt Quick Android應用程序。在Qt Creator Android項目中調試外部共享庫

我自己使用CMake構建這個庫,CMAKE_BUILD_TYPE設置爲Debug。當我在Qt Creator調試模式下啓動應用程序時,我可以停止在我的Qt代碼中的斷點上,但它不會跳入庫調用,我只看到彙編程序列表。

是否有可能告訴調試器在哪裏庫源代碼是甚至可以在Android中進行調試?

回答

0

好的,這絕對有可能。

首先,確保你確實有所有調試信息.so庫:

<path-to-your-NDK>/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/arm-linux-androideabi/bin/objdump -S <your-lib-name>.so | less 

您應該看到彙編語言和C++代碼的混合體,這表明你的庫中包含調試符號。

之後,確保Qt Creator能夠在調試會話期間找到您的庫。啓動「Debug」,然後在Windows-> Views-> Debugger log中打開gdb console。執行:

show solib-search-path 

查看gdb嘗試查找庫的目錄的完整列表。路徑添加到您的圖書館,如果它現在還沒有,如:

set solib-search-path <old-value>:<path-to-your-library> 

我知道這是一個有點跛,應該有這種自動化的方式。但它爲我工作。