diff --git a/plugins/dynamic-tracking/index.py b/plugins/dynamic-tracking/index.py index 25a56e501..ec4e91b7e 100755 --- a/plugins/dynamic-tracking/index.py +++ b/plugins/dynamic-tracking/index.py @@ -177,6 +177,9 @@ def dtFileList(): def dtSimpleTrace(): + if mw.isAppleSystem(): + return mw.returnJson(False, 'macosx只能手动执行!') + args = getArgs() data = checkArgs(args, ['pid']) if not data[0]: diff --git a/plugins/dynamic-tracking/shell/simple_macosx_trace.sh b/plugins/dynamic-tracking/shell/simple_macosx_trace.sh new file mode 100644 index 000000000..db620ef45 --- /dev/null +++ b/plugins/dynamic-tracking/shell/simple_macosx_trace.sh @@ -0,0 +1,39 @@ +#!/bin/bash +PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin +export PATH + + +# debug +# cd /www/server/mdserver-web +# /www/server/mdserver-web/plugins/dynamic-tracking/shell/simple_trace_macosx.sh "22431" + +# cd /Users/midoks/Desktop/mwdev/server/mdserver-web +# /Users/midoks/Desktop/mwdev/server/mdserver-web/plugins/dynamic-tracking/shell/simple_trace_macosx.sh "22431" + +# dtrace -x ustackframes=100 -n 'pid$target::mach_msg_trap:entry { @[ustack()] = count(); } tick-30s { exit(0); }' -p 18572 -o out.SystemUIServer_stacks +# /Users/midoks/Desktop/mwdev/server/dynamic-tracking/FlameGraph/stackcollapse.pl out.SystemUIServer_stacks > kernel.cbt +# /Users/midoks/Desktop/mwdev/server/dynamic-tracking/FlameGraph/flamegraph.pl kernel.cbt > kernel.svg + +curPath=`pwd` +rootPath=$(dirname "$curPath") +serverPath=$(dirname "$rootPath") + +sysName=`uname` +PID=$1 + +echo $rootPath # /Users/midoks/Desktop/mwdev/server +echo $curPath # /Users/midoks/Desktop/mwdev/server/mdserver-web + +APP_DIR=${rootPath}/dynamic-tracking +DST_FILE_DIR=${APP_DIR}/trace/PID_${PID} +mkdir -p $DST_FILE_DIR + +DST_FILE=${DST_FILE_DIR}/out.SystemUIServer_stacks + +if [ ! -f $DST_FILE ];then + sudo dtrace -x ustackframes=100 -n 'pid$target::mach_msg_trap:entry { @[ustack()] = count(); } tick-30s { exit(0); }' -p "$PID" -o $DST_FILE +fi + +${APP_DIR}/FlameGraph/stackcollapse.pl $DST_FILE > ${DST_FILE_DIR}/kernel.cbt +${APP_DIR}/FlameGraph/flamegraph.pl ${DST_FILE_DIR}/kernel.cbt > ${DST_FILE_DIR}/main.svg + diff --git a/plugins/dynamic-tracking/shell/simple_trace.sh b/plugins/dynamic-tracking/shell/simple_trace.sh index fc3485da0..6dd8e5c2c 100644 --- a/plugins/dynamic-tracking/shell/simple_trace.sh +++ b/plugins/dynamic-tracking/shell/simple_trace.sh @@ -5,14 +5,11 @@ export PATH # debug # cd /www/server/mdserver-web -# /www/server/mdserver-web/plugins/dynamic-tracking/shell/simple_trace.sh "22431" +# /www/server/mdserver-web/plugins/dynamic-tracking/shell/simple_trace_macosx.sh "22431" # cd /Users/midoks/Desktop/mwdev/server/mdserver-web -# /Users/midoks/Desktop/mwdev/server/mdserver-web/plugins/dynamic-tracking/shell/simple_trace.sh "22431" +# /Users/midoks/Desktop/mwdev/server/mdserver-web/plugins/dynamic-tracking/shell/simple_trace_macosx.sh "22431" -# dtrace -x ustackframes=100 -n 'pid$target::mach_msg_trap:entry { @[ustack()] = count(); } tick-30s { exit(0); }' -p 18572 -o out.SystemUIServer_stacks -# /Users/midoks/Desktop/mwdev/server/dynamic-tracking/FlameGraph/stackcollapse.pl out.SystemUIServer_stacks > kernel.cbt -# /Users/midoks/Desktop/mwdev/server/dynamic-tracking/FlameGraph/flamegraph.pl kernel.cbt > kernel.svg curPath=`pwd` rootPath=$(dirname "$curPath") diff --git a/plugins/dynamic-tracking/static/js/dynamic-tracking.js b/plugins/dynamic-tracking/static/js/dynamic-tracking.js index 1c9576ce2..2ff171a84 100755 --- a/plugins/dynamic-tracking/static/js/dynamic-tracking.js +++ b/plugins/dynamic-tracking/static/js/dynamic-tracking.js @@ -36,9 +36,10 @@ $('.data-collect').click(function(){ var pid = $('#searchValue').val(); dtPost('simple_trace', '', {pid:pid}, function(rdata){ - console.log(rdata); + // console.log(rdata); + var rdata = $.parseJSON(rdata.data); + layer.msg(rdata['msg'],{icon:rdata['status']?1:2,time:2000,shade: [0.3, '#000']}); }); - }); diff --git a/plugins/dynamic-tracking/versions/debian.sh b/plugins/dynamic-tracking/versions/debian.sh index a14e1b8e7..c42eff5eb 100644 --- a/plugins/dynamic-tracking/versions/debian.sh +++ b/plugins/dynamic-tracking/versions/debian.sh @@ -14,7 +14,7 @@ SYS_ARCH=`arch` # apt-get update -y # strace -p $(ps -ef|grep "pool www" | awk '{print $2}' | grep -v grep | tr '\n' ',' ) -# perf record -F 99 -p 892 -g -- sleep 30 +# perf record -F 99 -p 2401699 -g -- sleep 30 # perf script > out.perf # /www/server/dynamic-tracking/FlameGraph/stackcollapse-perf.pl out.perf > out.folded # /www/server/dynamic-tracking/FlameGraph/flamegraph.pl out.folded > php-zend-flame-graph.svg