Android调试方法总结之加CallTrace

1.java层

Log.d(TAG, "calltrack=" , new Throwable());

示例:

    public static int setAudioPortGain(AudioPort port, AudioGainConfig gain) {
        if (port == null || gain == null) {
            return ERROR_BAD_VALUE;
        }
        AudioPortConfig activeConfig = port.activeConfig();
        AudioPortConfig config = new AudioPortConfig(port, activeConfig.samplingRate(),
                                        activeConfig.channelMask(), activeConfig.format(), gain);
        config.mConfigMask = AudioPortConfig.GAIN;

		Log.d(TAG, "setAudioPortGain=" , new Throwable());
        return AudioSystem.setAudioPortConfig(config);
    }

2.native层:

对应的android.mk或android.bp文件加上 "libutilscallstack"

cpp文件引用头文件#include <utils/CallStack.h>

使用方法,在函数中加上CallStack cs("calltrack");

示例:

@@ -211,6 +212,8 @@ status_t AudioSystem::setParameters(audio_io_handle_t ioHandle, const String8& k
 {
     const sp<IAudioFlinger>& af = AudioSystem::get_audio_flinger();
     if (af == 0) return PERMISSION_DENIED;
+    ALOGI("AudioSystem::setParameters, param = %s", keyValuePairs.c_str());
+    CallStack cs("AudioSystem");
     return af->setParameters(ioHandle, keyValuePairs);
 }
 

3.kernel层

比较简单,直接在函数中加上dump_stack();


版权声明:本文为songche123原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。