Posted to tcl by dgp at Wed Sep 24 15:36:10 GMT 2014view raw

  1. % tcl::unsupported::disassemble proc onData
  2. ByteCode 0x0x4893800, refCt 1, epoch 15, interp 0x0x4845670 (epoch 15)
  3. Source "\n set data [split $data \"\r\n\"]\n foreach resp"...
  4. Cmds 15, src 602, inst 274, litObjs 19, aux 1, stkDepth 7, code/src 0.00
  5. Proc 0x0x489f570, refCt 1, args 2, compiled locals 3
  6. slot 0, scalar, arg, "socketID"
  7. slot 1, scalar, arg, "data"
  8. slot 2, scalar, "response"
  9. Exception ranges 3, depth 2:
  10. 0: level 0, loop, pc 27-267, continue 269, break 270
  11. 1: level 1, catch, pc 100-112, catch 117
  12. 2: level 1, catch, pc 157-169, catch 174
  13. Commands 15:
  14. 1: pc 0-10, src 5-33 2: pc 0-7, src 15-32
  15. 3: pc 11-272, src 39-600 4: pc 27-62, src 72-171
  16. 5: pc 36-38, src 77-99 6: pc 44-57, src 154-161
  17. 7: pc 63-267, src 181-594 8: pc 86-125, src 233-269
  18. 9: pc 100-112, src 240-268 10: pc 143-182, src 299-338
  19. 11: pc 157-169, src 306-337 12: pc 213-218, src 389-416
  20. 13: pc 233-238, src 443-470 14: pc 253-258, src 495-520
  21. 15: pc 262-267, src 544-583
  22. Command 1: "set data [split $data \"\r\n\""...
  23. Command 2: "split $data \"\r\n"...
  24. (0) push1 0 # "split"
  25. (2) loadScalar1 %v1 # var "data"
  26. (4) push1 1 # "\r"...
  27. (6) invokeStk1 3
  28. (8) storeScalar1 %v1 # var "data"
  29. (10) pop
  30. Command 3: "foreach response $data {\n if {[string length $r"...
  31. (11) startCommand +262 1 # next cmd at pc 273
  32. (20) loadScalar1 %v1 # var "data"
  33. (22) foreach_start 0
  34. [jumpOffset=-242, vars=[%v2]]
  35. Command 4: "if {[string length $response] < 1} {\n # Nul"...
  36. (27) startCommand +35 2 # next cmd at pc 62, 2 cmds start here
  37. Command 5: "string length $response"...
  38. (36) loadScalar1 %v2 # var "response"
  39. (38) strlen
  40. (39) push1 2 # "1"
  41. (41) lt
  42. (42) jumpFalse1 +18 # pc 60
  43. Command 6: "continue"...
  44. (44) startCommand +14 1 # next cmd at pc 58
  45. (53) jump4 +216 # pc 269
  46. (58) jump1 +4 # pc 62
  47. (60) push1 3 # ""
  48. (62) pop
  49. Command 7: "switch -glob -- $response {\n \"*login:*\" {"...
  50. (63) startCommand +205 1 # next cmd at pc 268
  51. (72) loadScalar1 %v2 # var "response"
  52. (74) push1 4 # "*login:*"
  53. (76) over 1
  54. (81) strmatch +0
  55. (83) jumpFalse1 +48 # pc 131
  56. (85) pop
  57. Command 8: "catch {send $socketID \"$::login\r\n\""...
  58. (86) startCommand +40 1 # next cmd at pc 126
  59. (95) beginCatch4 1
  60. Command 9: "send $socketID \"$::login\r\n"...
  61. (100) push1 5 # "send"
  62. (102) loadScalar1 %v0 # var "socketID"
  63. (104) push1 6 # "::login"
  64. (106) loadStk
  65. (107) push1 1 # "\r"...
  66. (109) strcat 2
  67. (111) invokeStk1 3
  68. (113) push1 7 # "0"
  69. (115) jump1 +4 # pc 119
  70. (117) pushResult
  71. (118) pushReturnCode
  72. (119) endCatch
  73. (120) reverse 2
  74. (125) pop
  75. (126) jump4 +142 # pc 268
  76. (131) push1 8 # "*password:*"
  77. (133) over 1
  78. (138) strmatch +0
  79. (140) jumpFalse1 +45 # pc 185
  80. (142) pop
  81. Command 10: "catch {send $socketID \"$::password\r\n\""...
  82. (143) startCommand +40 1 # next cmd at pc 183
  83. (152) beginCatch4 2
  84. Command 11: "send $socketID \"$::password\r\n"...
  85. (157) push1 5 # "send"
  86. (159) loadScalar1 %v0 # var "socketID"
  87. (161) push1 9 # "::password"
  88. (163) loadStk
  89. (164) push1 1 # "\r"...
  90. (166) strcat 2
  91. (168) invokeStk1 3
  92. (170) push1 7 # "0"
  93. (172) jump1 +4 # pc 176
  94. (174) pushResult
  95. (175) pushReturnCode
  96. (176) endCatch
  97. (177) reverse 2
  98. (182) pop
  99. (183) jump1 +85 # pc 268
  100. (185) push1 10 # "*GNET*"
  101. (187) over 1
  102. (192) strmatch +0
  103. (194) jumpFalse1 +7 # pc 201
  104. (196) pop
  105. (197) push1 3 # ""
  106. (199) jump1 +69 # pc 268
  107. (201) push1 11 # "~OUTPUT*"
  108. (203) over 1
  109. (208) strmatch +0
  110. (210) jumpFalse1 +11 # pc 221
  111. (212) pop
  112. Command 12: "puts \"Output Event Received"...
  113. (213) push1 12 # "puts"
  114. (215) push1 13 # "Output Event Received"
  115. (217) invokeStk1 2
  116. (219) jump1 +49 # pc 268
  117. (221) push1 14 # "~DEVICE*"
  118. (223) over 1
  119. (228) strmatch +0
  120. (230) jumpFalse1 +11 # pc 241
  121. (232) pop
  122. Command 13: "puts \"Device Event Received"...
  123. (233) push1 12 # "puts"
  124. (235) push1 15 # "Device Event Received"
  125. (237) invokeStk1 2
  126. (239) jump1 +29 # pc 268
  127. (241) push1 16 # "~HVAC*"
  128. (243) over 1
  129. (248) strmatch +0
  130. (250) jumpFalse1 +11 # pc 261
  131. (252) pop
  132. Command 14: "puts \"HVAC Event Received"...
  133. (253) push1 12 # "puts"
  134. (255) push1 17 # "HVAC Event Received"
  135. (257) invokeStk1 2
  136. (259) jump1 +9 # pc 268
  137. (261) pop
  138. Command 15: "puts \"Unknown Data Received from Device"...
  139. (262) push1 12 # "puts"
  140. (264) push1 18 # "Unknown Data Received from Device"
  141. (266) invokeStk1 2
  142. (268) pop
  143. (269) foreach_step
  144. (270) foreach_end
  145. (271) push1 3 # ""
  146. (273) done
  147.