Posted to tcl by dgp at Wed Sep 24 15:36:10 GMT 2014view pretty
% tcl::unsupported::disassemble proc onData ByteCode 0x0x4893800, refCt 1, epoch 15, interp 0x0x4845670 (epoch 15) Source "\n set data [split $data \"\r\n\"]\n foreach resp"... Cmds 15, src 602, inst 274, litObjs 19, aux 1, stkDepth 7, code/src 0.00 Proc 0x0x489f570, refCt 1, args 2, compiled locals 3 slot 0, scalar, arg, "socketID" slot 1, scalar, arg, "data" slot 2, scalar, "response" Exception ranges 3, depth 2: 0: level 0, loop, pc 27-267, continue 269, break 270 1: level 1, catch, pc 100-112, catch 117 2: level 1, catch, pc 157-169, catch 174 Commands 15: 1: pc 0-10, src 5-33 2: pc 0-7, src 15-32 3: pc 11-272, src 39-600 4: pc 27-62, src 72-171 5: pc 36-38, src 77-99 6: pc 44-57, src 154-161 7: pc 63-267, src 181-594 8: pc 86-125, src 233-269 9: pc 100-112, src 240-268 10: pc 143-182, src 299-338 11: pc 157-169, src 306-337 12: pc 213-218, src 389-416 13: pc 233-238, src 443-470 14: pc 253-258, src 495-520 15: pc 262-267, src 544-583 Command 1: "set data [split $data \"\r\n\""... Command 2: "split $data \"\r\n"... (0) push1 0 # "split" (2) loadScalar1 %v1 # var "data" (4) push1 1 # "\r"... (6) invokeStk1 3 (8) storeScalar1 %v1 # var "data" (10) pop Command 3: "foreach response $data {\n if {[string length $r"... (11) startCommand +262 1 # next cmd at pc 273 (20) loadScalar1 %v1 # var "data" (22) foreach_start 0 [jumpOffset=-242, vars=[%v2]] Command 4: "if {[string length $response] < 1} {\n # Nul"... (27) startCommand +35 2 # next cmd at pc 62, 2 cmds start here Command 5: "string length $response"... (36) loadScalar1 %v2 # var "response" (38) strlen (39) push1 2 # "1" (41) lt (42) jumpFalse1 +18 # pc 60 Command 6: "continue"... (44) startCommand +14 1 # next cmd at pc 58 (53) jump4 +216 # pc 269 (58) jump1 +4 # pc 62 (60) push1 3 # "" (62) pop Command 7: "switch -glob -- $response {\n \"*login:*\" {"... (63) startCommand +205 1 # next cmd at pc 268 (72) loadScalar1 %v2 # var "response" (74) push1 4 # "*login:*" (76) over 1 (81) strmatch +0 (83) jumpFalse1 +48 # pc 131 (85) pop Command 8: "catch {send $socketID \"$::login\r\n\""... (86) startCommand +40 1 # next cmd at pc 126 (95) beginCatch4 1 Command 9: "send $socketID \"$::login\r\n"... (100) push1 5 # "send" (102) loadScalar1 %v0 # var "socketID" (104) push1 6 # "::login" (106) loadStk (107) push1 1 # "\r"... (109) strcat 2 (111) invokeStk1 3 (113) push1 7 # "0" (115) jump1 +4 # pc 119 (117) pushResult (118) pushReturnCode (119) endCatch (120) reverse 2 (125) pop (126) jump4 +142 # pc 268 (131) push1 8 # "*password:*" (133) over 1 (138) strmatch +0 (140) jumpFalse1 +45 # pc 185 (142) pop Command 10: "catch {send $socketID \"$::password\r\n\""... (143) startCommand +40 1 # next cmd at pc 183 (152) beginCatch4 2 Command 11: "send $socketID \"$::password\r\n"... (157) push1 5 # "send" (159) loadScalar1 %v0 # var "socketID" (161) push1 9 # "::password" (163) loadStk (164) push1 1 # "\r"... (166) strcat 2 (168) invokeStk1 3 (170) push1 7 # "0" (172) jump1 +4 # pc 176 (174) pushResult (175) pushReturnCode (176) endCatch (177) reverse 2 (182) pop (183) jump1 +85 # pc 268 (185) push1 10 # "*GNET*" (187) over 1 (192) strmatch +0 (194) jumpFalse1 +7 # pc 201 (196) pop (197) push1 3 # "" (199) jump1 +69 # pc 268 (201) push1 11 # "~OUTPUT*" (203) over 1 (208) strmatch +0 (210) jumpFalse1 +11 # pc 221 (212) pop Command 12: "puts \"Output Event Received"... (213) push1 12 # "puts" (215) push1 13 # "Output Event Received" (217) invokeStk1 2 (219) jump1 +49 # pc 268 (221) push1 14 # "~DEVICE*" (223) over 1 (228) strmatch +0 (230) jumpFalse1 +11 # pc 241 (232) pop Command 13: "puts \"Device Event Received"... (233) push1 12 # "puts" (235) push1 15 # "Device Event Received" (237) invokeStk1 2 (239) jump1 +29 # pc 268 (241) push1 16 # "~HVAC*" (243) over 1 (248) strmatch +0 (250) jumpFalse1 +11 # pc 261 (252) pop Command 14: "puts \"HVAC Event Received"... (253) push1 12 # "puts" (255) push1 17 # "HVAC Event Received" (257) invokeStk1 2 (259) jump1 +9 # pc 268 (261) pop Command 15: "puts \"Unknown Data Received from Device"... (262) push1 12 # "puts" (264) push1 18 # "Unknown Data Received from Device" (266) invokeStk1 2 (268) pop (269) foreach_step (270) foreach_end (271) push1 3 # "" (273) done