Ale*_*nko 5 c++ debugging android gdb gdbserver
我正在使用GDB(主机上的gdbserver + gdb)调试Android的C ++库,并且我注意到gdb输出非常慢。
例如,应用程序大约有15个线程,当我键入内容时thread apply all bt,将所有堆栈跟踪输出到终端/文件需要15-20秒。所有输出约为200行文本,应该不会那么慢!
而且,在我的主机(64位Ubuntu)上,相同的操作所花费的时间不超过0.1-0.2秒!
我怀疑主机上的终端输出可能是速度下降的原因,但事实并非如此。即使使用以下设置,也需要花费相同的时间:
set width 0
set height 0
set pagination 0
set logging redirect on
set logging overwrite on
set logging file prof.txt
set logging on
Run Code Online (Sandbox Code Playgroud)
我不能完全确定导致减速的主要原因是什么,要么是Android上的堆栈缓慢展开,要么是通过gdb <-> gdbserver连接的数据传输缓慢。但是我怀疑是后者,因为当gdb输出数据时,该adb进程会占用大量CPU时间。
我的问题是:如何使gdb输出到文件的速度更快?
如果有人知道如何实现以下目的之一,请提供帮助:
编辑:
值得一提的是,我正在使用adb forwardgdb和gdbserver之间建立tcp连接:
adb push $NDK_ROOT/prebuilt/android-arm/gdbserver/gdbserver /data/local/tmp
adb shell chmod 777 /data/local/tmp/gdbserver
adb shell /data/local/tmp/gdbserver :5039 --attach $1 &
adb forward tcp:5039 tcp:5039
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
418 次 |
| 最近记录: |