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