當前位置:首頁 » 安卓系統 » androidgdbserver

androidgdbserver

發布時間: 2022-06-16 19:33:52

A. android gdbserver 有什麼用

使用 SQL Server 代理服務連接到 SQL Server SQL Server 代理服務可以使用 Windows 身份驗證或 SQL Server 身份驗證連接到 SQL Server 本地實例。無論您選擇哪種身份驗證,帳戶都必須是 sysadmin 固定伺服器角色的成員。 可用身份驗證方法 SQL Server 代理可以使用兩種不同的身份驗證方法連接到 SQL Server 實例: Windows 身份驗證,使用這種方法時,SQL Server 代理服務使用定義為服務啟動帳戶的 Microsoft Windows 域帳戶連接到 SQL Server 實例。 SQL Server 身份驗證,使用這種方法時,SQL Server 代理服務使用 SQL Server 身份驗證登錄名連接到 SQL Server 實例。只有 sysadmin 角色的成員可以這樣登錄。 安全說明: 在 SQL Server 2005 中,SQL Server 代理不支持 SQL Server 身份驗證。僅在管理早期版本的 SQL Server 時可以使用這種身份驗證。

B. gdbserver output: run-as: Package '' is unknown

/system/bin/run-as的許可權不對
首先把手機ROOT 連接電腦 打開USB調試

然後 打開電腦的控制台
> adb shell
> su
> mount -o remount rw /system
> chmod 4750 /system/bin/run-as

> mount -o remount ro /system

之後就能斷點了

C. apk調試方法求助

方法一:

1、使用apktool的-d選項反編譯apk文件

java -jar apktool.jar d -d target.apk -o output

2、在AndroidManifest的application節點中添加 android:debuggable="true"

3、在入口點的類的onCreate中添加如下代碼等待調試

invoke-static{}, Landroid/os/Debug;->waitForDebugger()V

4、回編譯apk

java -jar apktool.jar b -d output -o newTarget.apk

5、對apk進行簽名

java -jar signapk.jar testkey.x509.pem testkey.pk8 newTarget.apk signed.apk

6、將簽名後的apk安裝到手機或者模擬器上

adb install signed.apk

7、將1中的smali代碼導入到Android Studio中

file→open→output目錄→下斷點

8、打開Monitor查找相應的進程

運行→monitor 或者Tools ->Android ->Android Device Monitor

9、配置遠程調試選項

Run→Editor Configurations→Defaults→Remote,點擊+號新增一個,Host為localhost,Port為8700

10、打開apk,點擊綠色的小蟲子就可以開始調試了

方法二:無需修改原apk文件

1、用 Android killer等工具反編譯apk文件

2、將smali代碼入到Android Studio中,安裝smaliidea插件

File→Settings→Plugins→Install plugin from disk…→Restart

3、配置遠程調試選項,打開monitor

4、使用adb以debug方式啟動apk

adb shell am start -D -n package/activitiyname

5、下斷點開始調試,在watch中添加寄存器http://www.315nk.com/不清楚追問,希望能幫助到您

D. 在Android設備上怎麼調試守護進程

其實網上有很多類似的文章,但是你會發現幾乎都不可重現,要麼是細節沒講清楚,要麼是壓根自己沒有真正去試過。這里,我僅給出自己用gdb和gdbserver調試android native code的實際過程,希望對大家有用。

註:以調試mediaserver進程為例.

第一步:你需要下載android,以debug方式編譯,並以生成的image起模擬器或者設備。

第二步:你需要從「http://developer.download.nvidia.com/tegra/files/tegra-gdb-20100430.zip」下載一個gdb,覆蓋到android源碼中gdb對應的位置。

第三步:adb shell到設備,並起gdbserver偵聽目標進程:

adb shell

gdbserver :5039 /system/bin/mediaserver

第四步: 建立pc機和設備的消息連接:

adb forward tcp:5039 tcp:5039

第五步: 使用gdb調試目標進程:

cd android_src

prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-gdb out/debug/target/proct/generic/symbols/system/bin/mediaserver

第六步: 設置符號表:

set solib-absolute-prefix /your_android_src_path/out/debug/target/proct/generic/symbols

set solib-search-path /your_android_src_path/out/debug/target/proct/generic/symbols/system/lib

第七步: 使gdb和gdb server建立連接:

target remote :5039

第八步: ok. 現在可以使用gdb的命令進行調試,譬如next\break\step\info thread等.

E. 請教gdbserver使用方法

方法是沒有問題的。不過你剛gdbserver以attach方式啟動調試的時候,你的程序應該是停在sleep()的庫函數裡面,
這個時候走單步一般會報「Cannot find bounds of current function」。

你啟動gdb之後把set debug remote 1 打開,然後把gdb側和gdbserver側的調試列印都貼上來看一下。

F. gdb載入動態庫成功,但是不能顯示動態庫中的源碼(gdb+gdbserver)

因為具體的給的不夠詳細,不清楚你遇到的情況。
如果僅從斷點上看,應該就是CApartment.cpp:55
但是,如果你的程序編譯的時候,不是-O0,那個可能回不到源碼,只能看匯編。
1、有時候(很少)就是編譯器的錯誤。
2、還有可能就是你調試的程序和你的源碼不匹配
3、你的程序已經崩潰了,破壞了堆棧或者GDB需要的數據。
4、這個地方有特殊的定位信息
5、其他情況,還是比較多的,經常遇到。
如果懂匯編,最好看看匯編。
如果不懂,看看那一條語句是最後一條能夠跟蹤的語句。
仔細看看最後一條語句的所有變數,應該能猜出來是什麼問題。

G. android ndk build BUILD_EXECUTABLE的問題

  1. dr@drBox:~/workspace/JniTest/jni$ ~/android-ndk-r6/ndk-build Compile++ thumb : Test <= JniTest.cpp /bin/sh: /home/dr/android-ndk-r6/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-g++: not found make: *** [/home/dr/workspace/JniTest/obj/local/armeabi/objs/Test/JniTest.o] Error 127

這個錯誤是說找不到arm-linux-androideabi-g++,確實找不到,我從ndk r6中發現根本就沒有linux-x86/文件夾,只有darwin-x86 gdbserver這兩個文件夾,所以了最新的ndk r7b,幸好這裡面有linux-x86文件夾,編譯成功了。


dr@drBox:~/workspace/JniTest/jni$ ~/android-ndk-r7b/ndk-build Compile++ thumb : Test <= JniTest.cpp StaticLibrary : libstdc++.a SharedLibrary : libTest.so Install : libTest.so => libs/armeabi/libTest.so


2.當只改動Android.mk文件後需要編譯,這時mm執行後會報如下提示:


============================================ make: Entering directory `/home/dr/android4.0.3' make: Nothing to be done for `all_moles'. make: Leaving directory `/home/dr/android4.0.3'


說明沒有文件改動,拒絕編譯。


那麼解決辦法可以是去稍微改動一下cpp等文件,加個空格也行。但是還有一種方便的方式就是


給cpp文件加時間戳:touch *.cpp


這樣就可以繼續編譯了,所有cpp文件的時間都更新為最新了。

H. eclipse下使用gdb調試時gdbserver 調試時 msg= Watchdog timeout has expired. Target detached

message from arm-linux-androideabi-gdb.exe which source code is remote.c

in function getpkt_or_notif_sane_1

if( c == SERIAL_TIMEOUT )

...

you need close the target watchdog daemond

熱點內容
扁桃玩的伺服器地址 發布:2025-05-17 12:18:25 瀏覽:509
u盤上傳歌 發布:2025-05-17 12:14:51 瀏覽:613
入門c語言設計 發布:2025-05-17 12:08:31 瀏覽:41
c3演算法 發布:2025-05-17 12:04:19 瀏覽:365
phprecv 發布:2025-05-17 11:55:00 瀏覽:611
福建時鍾監控網關伺服器雲主機 發布:2025-05-17 11:54:28 瀏覽:249
c資料庫壓縮 發布:2025-05-17 11:39:22 瀏覽:963
安卓手機如何連接音響功放 發布:2025-05-17 11:37:48 瀏覽:962
破解exe加密視頻 發布:2025-05-17 11:23:41 瀏覽:979
我的世界伺服器圈太大了怎麼辦 發布:2025-05-17 11:15:21 瀏覽:617