#include <utils/CallStack.h>
- android::CallStack stack;
- stack.update(1, 100);
- stack.dump("");
dumpsys SurfaceFlinger 的堆栈信息
E/SurfaceFlinger( 276): Dumping HWComposer.cpp
D/CallStack( 276): #00 pc 00023490 /system/lib/libsurfaceflinger.so (android::HWComposer::dump(android::String8&, char*, unsigned int) const+47)
D/CallStack( 276): #01 pc 00028728 /system/lib/libsurfaceflinger.so (android::SurfaceFlinger::dumpAllLocked(android::String8&, char*, unsigned int) const+863)
D/CallStack( 276): #02 pc 00028972 /system/lib/libsurfaceflinger.so (android::SurfaceFlinger::dump(int, android::Vector<android::String16> const&)+393)
D/CallStack( 276): #03 pc 0001444e /system/lib/libbinder.so (android::BBinder::onTransact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+113)
D/CallStack( 276): #04 pc 0002658a /system/lib/libgui.so (android::BnSurfaceComposer::onTransact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+965)
D/CallStack( 276): #05 pc 00027fe2 /system/lib/libsurfaceflinger.so (android::SurfaceFlinger::onTransact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+165)
D/CallStack( 276): #06 pc 0001435e /system/lib/libbinder.so (android::BBinder::transact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+57)
D/CallStack( 276): #07 pc 00016f5a /system/lib/libbinder.so (android::IPCThreadState::executeCommand(int)+513)
D/CallStack( 276): #08 pc 000173a8 /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+183)
D/CallStack( 276): #09 pc 0001b184 /system/lib/libbinder.so
D/CallStack( 276): #10 pc 00011264 /system/lib/libutils.so (android::Thread::_threadLoop(void*)+111)
D/CallStack( 276): #11 pc 00010dca /system/lib/libutils.so
D/CallStack( 276): #12 pc 0000e4b8 /system/lib/libc.so (__thread_entry+72)
D/CallStack( 276): #13 pc 0000dba4 /system/lib/libc.so (pthread_create+160)
~
~