当前位置:首页 » 安卓系统 » 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

热点内容
2台服务器集群搭建 发布:2025-05-17 07:18:57 浏览:184
北方园林配置植物有哪些 发布:2025-05-17 07:18:20 浏览:543
数控加工零件图及编程 发布:2025-05-17 07:18:11 浏览:729
炼钢碱度算法 发布:2025-05-17 07:17:26 浏览:12
python获取年月日 发布:2025-05-17 07:15:33 浏览:302
手机加密软件java 发布:2025-05-17 07:00:24 浏览:441
网页如何连接密码器 发布:2025-05-17 06:54:49 浏览:840
1压缩软件 发布:2025-05-17 06:53:11 浏览:305
ftp空格目录 发布:2025-05-17 06:50:51 浏览:477
上传的程序 发布:2025-05-17 06:50:49 浏览:694