private static void analyzeSymbolAndDimension(EBPFProfilingDataRecord record,
                                       EBPFProfilingAnalyzeAggregateType aggregateType,
                                       EBPFProfilingStack toStack) throws Exception {
        final EBPFProfilingTargetType targetType = EBPFProfilingTargetType.valueOf(record.getTargetType());
        switch (targetType) {
            case ON_CPU:
                final EBPFOnCPUProfiling onCPUProfiling = EBPFOnCPUProfiling.parseFrom(record.getDataBinary());
                toStack.setDumpCount(onCPUProfiling.getDumpCount());
                toStack.setSymbols(parseSymbols(onCPUProfiling.getStacksList()));
                break;
            case OFF_CPU:
                final EBPFOffCPUProfiling offCPUProfiling = EBPFOffCPUProfiling.parseFrom(record.getDataBinary());
                toStack.setSymbols(parseSymbols(offCPUProfiling.getStacksList()));
                if (aggregateType == EBPFProfilingAnalyzeAggregateType.DURATION) {
                    toStack.setDumpCount(offCPUProfiling.getDuration());
                } else {
                    toStack.setDumpCount(offCPUProfiling.getSwitchCount());
                }
                break;
            default:
                throw new Exception("unknown target type: " + targetType);
        }
    }
Transform the {@link EBPFProfilingDataRecord} as runtime data
oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/profiling/ebpf/analyze/EBPFProfilingStack.java