#!/bin/bash
#sh ./start_leaks.sh ddd1 MAGIT02462 WayangMacFFmpeg /Users/cl/Downloads/zreport
# 检查是否提供了所有必需的参数
if [ "$#" -ne 4 ]; then
    echo "Usage: \$0 <casename> <devicename> <appname> <outputfile>"
    exit 1
fi

# 生成时间戳
timestamp=$(date +%s)
# 分配参数
casename=$1
devicename=$2
appname=$3
outputfile=$4

tracefile=${outputfile}/${casename}_${timestamp}.trace
PID_FILE=${outputfile}/pid.txt
TRACE_FILE=${outputfile}/trace.txt

# 构建完整的命令
COMMAND="xcrun xctrace record --device \"$devicename\" --attach \"$appname\" --template \"Leaks\" --output \"$tracefile\""

# 尝试执行命令并捕获错误
if nohup bash -c "$COMMAND" > /dev/null 2>&1 & then
    # 获取最后一个后台进程的PID
    PID=$!
    echo "recording, subprocess pid: $PID"
    # 将PID写入文件
    echo $PID > "$PID_FILE"
    echo $tracefile > "$TRACE_FILE"
else
    # 如果命令执行失败
    echo "Failed to start_leaks: $?" >&2
    exit 1
fi

# 输出PID（这里假设成功执行）
echo $PID

#等待录制成功
sleep 6