当前位置: 首页 > Web前端 > JavaScript

D8调试工具——jsvu使用规则

时间:2023-03-27 13:23:58 JavaScript

d8鏄疺8鑷甫鐨勫紑鍙戣€卻hell銆侱8鏄竴涓潪甯稿ソ鐢ㄧ殑璋冭瘯宸ュ叿锛屼綘鍙互鎶婂畠鐪嬫垚鏄痙ebugforV8鐨勭缉鍐欍€傛垜浠彲浠ヤ娇鐢╠8鏌ョ湅V8鍦ㄦ墽琛孞avaScript杩囩▼涓殑鍚勭涓棿鏁版嵁锛屾瘮濡備綔鐢ㄥ煙銆丄ST銆佸瓧鑺傜爜銆佷紭鍖栧悗鐨勪簩杩涘埗浠g爜銆佸瀮鍦惧洖鏀剁姸鎬侊紝涔熷彲浠ヤ娇鐢╠8鎻愪緵鐨勭鏈堿PI鏌ョ湅涓€浜涘唴閮ㄤ俊鎭€傚墠瑷€jsvu鏄竴娆綣avaScript寮曟搸鐗堟湰绠$悊宸ュ叿銆備互涓嬫槸Windows10涓嬬殑鎿嶄綔锛屽缓璁湪CMD绐楀彛鎿嶄綔銆?銆佸畨瑁呭墠鎻愶細nodeV14+npminstall-gjsvu杩愯jsvu锛屼氦浜掑紡鍛戒护琛岄€夋嫨瑕佸畨瑁呯殑骞冲彴鍜屽紩鎿庡畨瑁呮寚瀹氱増鏈殑寮曟搸锛屽彲浠ュ弬鑰冨涓嬪懡浠svu--os=win64--engines=v8,v8-debug鎵цjsvu瀹夎寮曟搸锛屽彲浠ュ湪%USERPROFILE%/.jsvu鐩綍涓嬫煡鐪嬪畨瑁呯殑寮曟搸瀹夎v8-debugjsvu--os=win64--engines=v8-debug鎵€鏀寔鐨勫紩鎿庢搷浣滅郴缁烰avaScriptEngineBinaryNAMAC64MAC64ARMWIN32WIN64LINUX32LINUX64CHAKRACHAKRA鎴朇HITHIMERJSGRAALJSGRAALJSIMESTHEMENERMES鍜孒ER鈥嬧€婱ES-HERMES-REPLIPL鉁呪潓鉂屸渽鉂屸渽JAVASCOREJASCOREJAVASCRICTCRICTCORE鎴栨垨sm鉁呪渽鉁呪渽鉁呪渽V8v8鉁呪渽鉁呪渽鉁呪渽V8debugv8-debug鉁呪渽鉁呪渽鉁呪渽鉁匵Sxs鉁?32)鉂屸渽鉁?32)鉁呪渽鏌ョ湅jsvu鐗堟湰jsvu-h馃摝jsvuv1.13.3鈥擩avaScript寮曟搸鐗堟湰鏇存柊鍣煋@][--os={mac64,mac64arm,linux32,linux64,win32,win64,default}][--engines={chakra,graaljs,hermes,javascriptcore,quickjs锛岃湗铔涚尨,v8,v8-debug,xs},鈥瀹屾暣鏂囨。鍦ㄧ嚎锛歨ttps://github.com/GoogleChromeLabs/jsvu#readme2.瀹夎eshost-cli锛堣繖涓笉浼氬畨瑁咃紝涓嶅奖鍝嶄娇鐢級鍒扮鐞唈s寮曟搸锛屽彲浠ヨ皟鐢ㄥ涓紩鎿庢墽琛宩s浠g爜锛屾洿鏂逛究鍦ㄤ笉鍚屽紩鎿庝笅璋冭瘯浠g爜npminstall-geshost-cliwindows涓嬮厤缃甧shost--add--args鏍规嵁闇€瑕佺殑寮曟搸锛岃嚜琛岄厤缃紝濡備笅eshost--add"Chakra"ch"%USERPROFILE%.jsvu\chakra.cmd"eshost--娣诲姞鈥淕raalJS鈥漡raaljs鈥?USERPROFILE%.jsvu\graaljs.cmd鈥漞shost--娣诲姞鈥淛avaScriptCore鈥漥sc鈥?USERPROFILE%.jsvu\javascriptcore.cmd鈥漞shost鈥斺€旀坊鍔犫€淪piderMonkey鈥漥sshell鈥?USERPROFILE%.jsvu\spidermonkey.cmd"eshost--add"V8--harmony"d8"%USERPROFILE%.jsvu\v8.cmd"--args"--harmony"eshost--add"V8"d8"%USERPROFILE%.jsvu\v8.cmd"eshost--add"XS"xs"%USERPROFILE%.jsvu\xs.cmd"杩欓噷鎴戜釜浜虹殑閰嶇疆濡備笅锛堜笉绠¤繖涓厤缃湁娌℃湁鏁堟灉锛岋級eshost--add"V8"d8"C:\Users\xiao.jsvu\v8.cmd"eshost--add"V8-debug"d8"C:\Users\xiao.jsvu\v8-debug.cmd"eshost--add"V8--harmony"d8"C:\Users\xiao.jsvu\v8.cmd"--args"--harmony"鏌ョ湅C:\Users\xiao.jsvu>eshost--configure-jsvuUsingconfig"C:\Users\xiao.eshost-config.json"鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹攢鈹€鈹€鈹€鈹€鈹€鈹€鈹攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹愨攤鍚嶇О鈹傜被鍨嬧攤璺緞鈹傚弬鏁扳攤鏍囩鈹傗敎鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹尖攢鈹€鈹€鈹€鈹€鈹€鈹尖攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹尖攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹尖攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹も攤ChakraCore鈹俢h鈹侰:\Users\xiao.jsvu\chakra.cmd鈹?.11.24,web鈹傗敎鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹尖攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹尖攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹尖攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹尖攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹も攤V8--harmony鈹俤8鈹侰:\Users\xiao.jsvu\v8.cmd鈹?-harmony鈹傗攤鈹溾攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹尖攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹尖攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹尖攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹尖攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹も攤V8鈹俤8鈹侰:\Users\xiao.jsvu\v8.cmd鈹傗攤鈹傗敎鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹尖攢鈹€鈹€鈹€鈹€鈹€鈹尖攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹尖攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹尖攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹も攤V8-debug鈹俤8鈹侰:\Users\xiao.jsvu\v8-debug.cmd鈹傗攤鈹傗敂鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹粹攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹粹攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹粹攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹楥:\Users\xiao.jsvu>鏈変汉鐭ラ亾涓婇潰鐨勯棶棰樺嚭鍦ㄥ摢閲岋紝璇锋寚鐐逛竴涓嬶紝璋㈣阿馃槉璇存槑锛?USERPROFILE%=C:\Users\usernamewin+r锛岃緭鍏md锛屾寜杩涘叆銆傚湪cmd绐楀彛杈撳叆set鍥炶溅锛屽彲浠ユ煡鐪嬬郴缁熷彉閲忥紙鏇村set鍛戒护璇风湅杩欓噷馃憠锛?.棣栧厛绠€鍗曚簡瑙d竴涓嬫娊璞¤娉曟爲鍦ㄤ紶缁熺紪璇戣瑷€鐨勮繃绋嬩腑锛屼竴娈垫簮鐮佷竴涓▼搴忕殑浠g爜鍦ㄦ墽琛屽墠浼氱粡杩囦笁涓楠わ紝缁熺О涓衡€滅紪璇戔€濓細鍒嗚瘝/璇嶆硶鍒嗘瀽杩欎釜杩囩▼灏嗕竴涓插瓧绗﹀垎瑙f垚鏈夋剰涔夌殑浠g爜鍧楋紝杩欎簺浠g爜鍧楃粺绉颁负token銆備緥濡傦細璁゛=1;璇ョ▼搴忛€氬父鍒嗚В涓轰互涓嬫爣璁帮細let,a,=,1,;绌烘牸鏄惁琚綋鎴愯鍙峰彇鍐充簬绌烘牸鎰忎箟瑙f瀽/parsing鍦ㄨ繖绉嶈瑷€涓殑杩囩▼鏄皢璇嶆眹鍗曞厓娴佽浆鎹负琛ㄧず鐢卞祵濂楀厓绱犵粍鎴愮殑绋嬪簭鐨勮娉曠粨鏋勭殑鏍戙€傝繖妫垫爲琚О涓衡€滄娊璞¤娉曟爲鈥濓紙abstractsyntaxcode锛孉ST锛変唬鐮佺敓鎴愬皢AST杞崲涓哄彲鎵ц浠g爜鐨勮繃绋嬬О涓轰唬鐮佺敓鎴愩€?palign=center>鍥剧墖鏉ユ簮缃戠粶锛堜镜鍒狅級

鐪嬩竴涓湪绾緼ST鍒嗘瀽鐨勪緥瀛愶紝鏂逛究鏌ョ湅#杩涘叆鐩綍杈撳嚭鏂囨。锛岀敓鎴恦8-help.txt锛寁8-debug-help.txtv8--help>>v8-help.txtv8-debug--help>>v8-debug-help銆倀xt涓娇鐢ㄧ殑涓昏鍛戒护鍙傛暟濡備笅馃憞v8-debug--help姒傝锛歴hell[options][--shell][...]d8[options][-e][--shell][[--module|--web-snapshot]...]-e鍦╒8涓墽琛屽瓧绗︿覆--shell杩愯浜や簰寮廕avaScriptshell--module灏嗘枃浠朵綔涓篔avaScript妯″潡鎵ц--web-snapshot灏嗘枃浠朵綔涓篧eb蹇収鎵цSSE3=1SSSE3=1SSE4_1=1SSE4_2=1SAHF=1AVX=1AVX2=1FMA3=1BMI1=1BMI2=1LZCNT=1POPCNT=1ATOM=0閫夐」鐨勪互涓嬭娉曟槸鎺ュ彈锛?-'鍜?--'閮藉彲浠ワ級锛?-flag锛堜粎闄恇ool鏍囧織锛?-no-flag锛堜粎闄恇ool鏍囧織锛?-flag=value锛堜粎闄愰潪bool鏍囧織锛?=鍛ㄥ洿娌℃湁绌烘牸')--flag鍊硷紙浠呴檺闈瀊ool鏍囧織锛?-锛堟崟鑾稪avaScript涓墍鏈夊墿浣欑殑鍙傛暟锛塐ptions:#Printgeneratedbytecode--print-bytecode(printbytecodegeneratedbyignitioninterpreter)type:booldefault:--noprint-bytecode#Traceoptimizedinformation--trace-opt(traceoptimizedcompilation)type:bool榛樿鍊硷細--notrace-opt--trace-opt-verbose锛堢壒鍒缁嗙殑浼樺寲缂栬瘧璺熻釜锛夌被鍨嬶細bool榛樿鍊硷細--notrace-opt-verbose--trace-opt-stats锛堣窡韪紭鍖栫紪璇戠粺璁′俊鎭級绫诲瀷锛歜ool榛樿鍊硷細--notrace-opt-stats#Tracedeoptimization淇℃伅--trace-deopt(tracedeoptimization)type:booldefault:--notrace-deopt--log-deopt(logdeoptimization)type:booldefault:--nolog-deopt--trace-deopt-verbose(extraverbosedeoptimizationtracing)type:booldefault:--notrace-deopt-verbose--print-deopt-stress(printnumberofpossibledeoptpoints)#鏌ョ湅缂栬瘧鍚庣殑AST--print-ast(printsourceAST)type:booldefault:--noprint-ast#鏌ョ湅缂栬瘧鍚庣殑浠g爜--print-code(鎵撳嵃鐢熸垚鐨刢ode)type:booldefault:--noprint-code#鏌ョ湅浼樺寲浠g爜--print-opt-code(鎵撳嵃浼樺寲浠g爜)type:booldefault:--noprint-opt-code#鍏佽鍦ㄦ簮浠g爜涓娇鐢╒8NativeAPI鎻愪緵鐨勮娉?閰嶇疆骞跺湪浠g爜涓坊鍔?DebugPrint()锛涘彲浠ユ煡鐪嬭缁嗙殑杩愯鏃朵俊鎭?-allow-natives-syntax(鍏佽natives璇硶)type:booldefault:--noallow-natives-syntax4.1,鏌ョ湅astv8-debug-e--print-ast"constname='xiao'"鏀跺埌浠g爜鍚庯紝绗竴姝ユ槸鈥滆В閲娾€濓紝鍗宠В閲婂櫒鐢熸垚AST鍜宻copeC:\Users\xiao>v8-debug-e--print-ast"constname='xiao'"[涓哄嚱鏁扮敓鎴愬瓧鑺傜爜锛歖---AST---FUNCat0.KIND0.LITERALID0.鏆傚仠璁℃暟0銆傚悕绉扳€溾€濄€傛帹鏂悕绉扳€溾€濄€傛嫆缁濄€?VARIABLE(000001FA12EFAF80)锛堟ā寮?CONST锛屽垎閰?false锛夆€滃悕绉扳€濄€侭LOCKNOCOMPLETIONS涓?1銆?琛ㄨ揪澹版槑鍦?1...11鐐瑰紑濮嬨€?.VARPROXY涓婁笅鏂嘯2](000001FA12EFAF80)锛堟ā寮?CONST锛屽垎閰?false锛夆€滃悕绉扳€濄€?..LITERAL"xiao"C:\Users\xiao>4.2銆佹煡鐪嬩綔鐢ㄥ煙v8-debug-e--print-scopes"constname='xiao'"C:\Users\xiao>v8-debug-e--print-scopes"constname='xiao'"Globalscope:global{//(000001DB6010D600)(0,17)//灏嗚缂栬瘧//NormalFunction//1涓爤妲?/3涓爢妲?/涓存椂鍙橀噺锛歍EMPORARY.result;//(000001DB6010D910)local[0]//灞€閮ㄥ彉閲忥細CONST鍚嶇О锛?/(000001DB6010D820)context[2],浠庢湭璧嬪€紏C:\Users\xiao>4.3銆佹煡鐪嬬敓鎴愬瓧鑺傜爜v8-debug-e--print-bytecode"constname='xiao'"C:\Users\xiao>v8-debug-e--print-bytecode"constname='xiao'""涓哄嚱鏁扮敓鎴愮殑瀛楄妭鐮侊細(0x0113002538bd)]Bytecodelength:6Parametercount1Registercount1Framesize8Bytecodeage:0000001130025393A@0:1300LdaConstant[0]000001130025393C@2:2502StaCurrentContextSlot[2]000001130025393E@4:0eLdaUndefined000001130025393F@5:a9ReturnConstantpool(size=1)000001130025390D:[FixedArray]inOldSpace-map:0x011300002229-length:10:0x0113002538a1Handler=)SourcePositionTable(size=0)C:\Users\xiao>4.4銆傛煡鐪嬭缁嗙殑杩愯鏃朵俊鎭€氳繃--allow-natives-syntax鍙傛暟锛屽彲浠ュ湪JavaScript涓皟鐢?DebugPrint鐨勫簳灞侼ativeAPI鍑芥暟testV8(properties,elements){//addindexablepropertyfor(leti=0;i