2011-09-06 194 views
3

我正在使用vs-android構建本機C++ Android應用程序。我想通過在模擬器上啓動gdbserver並連接到該GDB服務器來從命令行進行調試。由於我沒有使用Android構建腳本,因此我沒有默認提供gdbserver。因此,我將gdbserver添加到vs-android收集它的lib文件夾中,並將其推送到APK中。該文件現在可以在我的SO所在的應用程序的lib文件夾的仿真器中找到,當我使用adb install部署應用程序時。調試使用vs-android構建的Android本地應用程序

我現在試着用run-as來運行gdbserver,但我得到錯誤「無法附加到進程924:操作不允許(1)」。

根據此http://ian-ni-lewis.blogspot.com/2011/05/ndk-debugging-without-root-access.html服務器應該能夠附加到進程時,gdbserver啓動與運行。

任何想法,我仍然可以做錯嗎?

+0

NDK的-gdb的腳本就是這樣 - 一個shell腳本,你可以閱讀和學習。看起來你沒有正確地使用run-as的東西,或者它在你的設備上壞了(因爲它在我的設備上)。此外,請確保被調試的apk具有Internet權限,因爲gdbserver需要網絡套接字,除非您通過unix域代理它。 (我期望有一個不同的錯誤消息,但是錯誤引發的誤導性消息在這個世界中並不是未知的) –

回答

0

要確定問題出在run-as還是使用gdbserver,請嘗試使用run-as執行「ps」而不是gdbserver,然後查看「ps」進程是否被列爲具有與使用相同的用戶ID應用程序的過程。如果不是,你的run-as有問題。如果它與應用程序的用戶標識相同,那麼gdbserver更可能出現問題。

+0

我試過這個id,它確實和運行我試圖調試的應用程序的用戶相同。這是我一直用來附加到進程的行:run-as com.ri.AndroidTests /data/data/com.ri.AndroidTests/lib/gdbserver:1234 --attach 285。 –

0

亞行外殼 蘇-c setenforce 0 它會解決這個問題

相關問題