调试一个Camera2 App 录像时拔掉USB摄像头至无响应的bug
分析它和正常逻辑的调用区别,须要打印c++的调用堆栈.
1.#include <utils/CallStack.h>
android::CallStack stack;
stack.update();
stack.dump(1);
//输出到printf
stack.log("luke_dsfdsfds");
或
stack.log("satcklog", ANDROID_LOG_ERROR, "stackdump:");
然后Android.bp的
shared_libs:加上一行
"libutilscallstack",
参考资料来源
undefined reference to ‘android::CallStack::CallStack_dp__mcu的专栏-CSDN博客
android 里面添加打印调用堆栈_画饼人的博客-CSDN博客_libutilscallstack
2021-12-06 17:28:33.320 3369-5547/? D/CameraSource: Set stoptime: 257099790 us
2021-12-06 17:28:33.363 3369-5547/? D/luke_dsfdsfds: #00 pc 0006701f /system/lib/libstagefright.so (android::CameraSource::setStopTimeUs(long long)+74)
2021-12-06 17:28:33.363 3369-3958/? D/CameraSource: onFrameAvailable: onFrameAvailable
2021-12-06 17:28:33.363 3369-5547/? D/luke_dsfdsfds: #01 pc 00091899 /system/lib/libstagefright.so (android::MediaCodecSource::Puller::onMessageReceived(android::sp<android::AMessage> const&)+456)
2021-12-06 17:28:33.363 3369-5547/? D/luke_dsfdsfds: #02 pc 0000d3e9 /system/lib/libstagefright_foundation.so (android::AHandler::deliverMessage(android::sp<android::AMessage> const&)+24)
2021-12-06 17:28:33.363 3369-5547/? D/luke_dsfdsfds: #03 pc 0000fcd9 /system/lib/libstagefright_foundation.so (android::AMessage::deliver()+60)
2021-12-06 17:28:33.363 3369-5547/? D/luke_dsfdsfds: #04 pc 0000e0c1 /system/lib/libstagefright_foundation.so (android::ALooper::loop()+476)
2021-12-06 17:28:33.363 3369-5547/? D/luke_dsfdsfds: #05 pc 0000c1bf /system/lib/libutils.so (android::Thread::_threadLoop(void*)+286)
2021-12-06 17:28:33.363 3369-5547/? D/luke_dsfdsfds: #06 pc 00063c15 /system/lib/libc.so (__pthread_start(void*)+22)
2021-12-06 17:28:33.363 3369-5547/? D/luke_dsfdsfds: #07 pc 0001e065 /system/lib/libc.so (__start_thread+22)
2021-12-06 17:28:33.363 3369-5547/? E/satcklog: stackdump:#00 pc 0006701f /system/lib/libstagefright.so (android::CameraSource::setStopTimeUs(long long)+74)
2021-12-06 17:28:33.363 3369-5547/? E/satcklog: stackdump:#01 pc 00091899 /system/lib/libstagefright.so (android::MediaCodecSource::Puller::onMessageReceived(android::sp<android::AMessage> const&)+456)
2021-12-06 17:28:33.363 3369-5547/? E/satcklog: stackdump:#02 pc 0000d3e9 /system/lib/libstagefright_foundation.so (android::AHandler::deliverMessage(android::sp<android::AMessage> const&)+24)
2021-12-06 17:28:33.363 3369-5547/? E/satcklog: stackdump:#03 pc 0000fcd9 /system/lib/libstagefright_foundation.so (android::AMessage::deliver()+60)
2021-12-06 17:28:33.363 3369-5547/? E/satcklog: stackdump:#04 pc 0000e0c1 /system/lib/libstagefright_foundation.so (android::ALooper::loop()+476)
2021-12-06 17:28:33.363 3369-5547/? E/satcklog: stackdump:#05 pc 0000c1bf /system/lib/libutils.so (android::Thread::_threadLoop(void*)+286)
2021-12-06 17:28:33.363 3369-5547/? E/satcklog: stackdump:#06 pc 00063c15 /system/lib/libc.so (__pthread_start(void*)+22)
2021-12-06 17:28:33.363 3369-5547/? E/satcklog: stackdump:#07 pc 0001e065 /system/lib/libc.so (__start_thread+22)