@@ -9,6 +9,7 @@ import com.fasterxml.jackson.databind.JsonNode
99import com.fasterxml.jackson.databind.ObjectMapper
1010import com.fasterxml.jackson.databind.annotation.JsonDeserialize
1111import com.fasterxml.jackson.module.kotlin.registerKotlinModule
12+ import org.slf4j.LoggerFactory
1213import java.io.IOException
1314import java.util.*
1415
@@ -163,6 +164,7 @@ class WOODState(woodResponse: WOODDumpResponse) {
163164 private val unparsedJSON = " "
164165 public val callbacks = " "
165166 private val woodResponse: WOODDumpResponse = woodResponse
167+ private val logger = LoggerFactory .getLogger(WOODState ::class .java)
166168
167169 fun getState (): WOODDumpResponse {
168170 return this .woodResponse
@@ -202,9 +204,9 @@ class WOODState(woodResponse: WOODDumpResponse) {
202204 if (bps == null ) {
203205 return
204206 }
205- println (" ==============" )
206- println (" Breakpoints" )
207- println (" --------------" )
207+ logger.trace (" ==============" )
208+ logger.trace (" Breakpoints" )
209+ logger.trace (" --------------" )
208210 val ws = this
209211 val nrBytesUsedForAmountBPs = 1 * 2
210212 val headerSize = ExecutionStateType .breakpointState.hexStr.length + nrBytesUsedForAmountBPs
@@ -217,7 +219,7 @@ class WOODState(woodResponse: WOODDumpResponse) {
217219 }
218220 val bps = breakpoints.slice(0 .. < fits).joinToString(" " )
219221 val amountBPs = HexaEncoder .serializeUInt8(fits)
220- println (" Breakpoints: amount=${breakpoints.size} " )
222+ logger.trace (" Breakpoints: amount=${breakpoints.size} " )
221223 val payload = " ${ExecutionStateType .breakpointState}${amountBPs}${bps} "
222224 stateMsgs.addPayload(payload)
223225 breakpoints = breakpoints.slice(fits .. < breakpoints.size)
@@ -231,10 +233,10 @@ class WOODState(woodResponse: WOODDumpResponse) {
231233 if (this .woodResponse.stack == null ) {
232234 return
233235 }
234- println (" ==============" )
235- println (" STACK" )
236- println (" --------------" )
237- println (" Total Stack length ${ this .woodResponse.stack.size} " )
236+ logger.trace (" ==============" )
237+ logger.trace (" STACK" )
238+ logger.trace (" --------------" )
239+ logger.trace (" Total Stack length {} " , this .woodResponse.stack.size)
238240
239241 val ws = this
240242 var stack = this .woodResponse.stack.map{ v -> serializeValue(v) }
@@ -250,7 +252,7 @@ class WOODState(woodResponse: WOODDumpResponse) {
250252 val payload = " ${ExecutionStateType .stackState}${amountVals}${vals} "
251253 stateMsgs.addPayload(payload)
252254 stack = stack.slice(fit .. < stack.size)
253- println (" msg: AmountStackValues ${fit} " )
255+ logger.trace (" msg: AmountStackValues ${fit} " )
254256 }
255257 }
256258
@@ -261,11 +263,11 @@ class WOODState(woodResponse: WOODDumpResponse) {
261263 if (this .woodResponse.table == null ) {
262264 return
263265 }
264- println (" ==============" )
265- println (" TABLE" )
266- println (" --------------" )
266+ logger.trace (" ==============" )
267+ logger.trace (" TABLE" )
268+ logger.trace (" --------------" )
267269 var elements = this .woodResponse.table.elements.map{ HexaEncoder .serializeUInt32BE(it) }
268- println (" Total Elements ${this .woodResponse.table.elements.size} " )
270+ logger.trace (" Total Elements ${this .woodResponse.table.elements.size} " )
269271 val nrBytesUsedForAmountElements = 4 * 2
270272 val headerSize = ExecutionStateType .tableState.length + nrBytesUsedForAmountElements
271273 while (elements.size != 0 ) {
@@ -277,7 +279,7 @@ class WOODState(woodResponse: WOODDumpResponse) {
277279 val amountElements = HexaEncoder .serializeUInt32BE(fit)
278280 val elems = elements.slice(0 .. < fit).joinToString(" " )
279281 val el_str = this .woodResponse.table.elements .slice(0 .. < fit).map{ e -> e.toString() }.joinToString(" , " )
280- println (" msg: amountElements ${fit} elements ${el_str} " )
282+ logger.trace (" msg: amountElements ${fit} elements ${el_str} " )
281283 val payload = " ${ExecutionStateType .tableState}${amountElements}${elems} "
282284 stateMsgs.addPayload(payload)
283285 elements = elements .slice(fit .. < elements.size)
@@ -291,10 +293,10 @@ class WOODState(woodResponse: WOODDumpResponse) {
291293 if (this .woodResponse.callstack == null ) {
292294 return
293295 }
294- println (" ==============" )
295- println (" CallStack" )
296- println (" --------------" )
297- println (" Total Frames ${ this .woodResponse.callstack.size} " )
296+ logger.trace (" ==============" )
297+ logger.trace (" CallStack" )
298+ logger.trace (" --------------" )
299+ logger.trace (" Total Frames {} " , this .woodResponse.callstack.size)
298300
299301 var frames = this .woodResponse.callstack.map{ f -> serializeFrame(f) }
300302 val nrBytesUsedForAmountFrames = 2 * 2
@@ -307,7 +309,7 @@ class WOODState(woodResponse: WOODDumpResponse) {
307309 }
308310 val amountFrames = HexaEncoder .serializeUInt16BE(fit)
309311 val fms = frames.slice(0 .. < fit).joinToString(" " )
310- println (" msg: amountFrames=${fit} " )
312+ logger.trace (" msg: amountFrames={} " , fit )
311313 val payload = " ${ExecutionStateType .callstackState}${amountFrames}${fms} "
312314 stateMsgs.addPayload(payload)
313315 frames = frames .slice(fit .. < frames.size)
@@ -321,11 +323,11 @@ class WOODState(woodResponse: WOODDumpResponse) {
321323 if (this .woodResponse.globals == null ) {
322324 return
323325 }
324- println (" ==============" )
325- println (" GLOBALS" )
326- println (" --------------" )
326+ logger.trace (" ==============" )
327+ logger.trace (" GLOBALS" )
328+ logger.trace (" --------------" )
327329
328- println (" Total Globals ${ this .woodResponse.globals.size} " )
330+ logger.trace (" Total Globals {} " , this .woodResponse.globals.size)
329331 val ws = this
330332 var globals = this .woodResponse.globals.map{ v -> serializeValue(v) }
331333 val nrBytesNeededForAmountGlbs = 4 * 2
@@ -341,7 +343,7 @@ class WOODState(woodResponse: WOODDumpResponse) {
341343 val payload = " ${ExecutionStateType .globalsState}${amountGlobals}${glbs} "
342344 stateMsgs.addPayload(payload)
343345 globals = globals .slice(fit .. < globals.size)
344- println (" msg: AmountGlobals ${fit} " )
346+ logger.trace (" msg: AmountGlobals {} " , fit )
345347 }
346348 }
347349
@@ -352,29 +354,29 @@ class WOODState(woodResponse: WOODDumpResponse) {
352354 if (this .woodResponse.memory == null ) {
353355 return
354356 }
355- println (" ==============" )
356- println (" Memory" )
357- println (" --------------" )
357+ logger.trace (" ==============" )
358+ logger.trace (" Memory" )
359+ logger.trace (" --------------" )
358360 val sizeHeader = ExecutionStateType .memState.length + 4 * 2 + 4 * 2 + 4 * 2
359361 /* val testArray = ByteArray(65536 / 2)
360362 Random(42).nextBytes(testArray)
361363 var bytes = testArray.map{ b -> HexFormat.of().formatHex(byteArrayOf(b)) }*/
362364 var bytes = this .woodResponse.memory.bytes.map{ b -> HexFormat .of().formatHex(byteArrayOf(b)) }
363- println (" Total Memory Bytes ${ this .woodResponse.memory.bytes.size} " )
365+ logger.trace (" Total Memory Bytes {} " , this .woodResponse.memory.bytes.size)
364366 var startMemIdx = 0
365367 var endMemIdx = 0
366368 while (bytes.isNotEmpty()) {
367369 // Step 1. Check how much space we still have.
368370 val freeSpace = stateMsgs.getFreeSpace() - sizeHeader
369- println (" Free space = $freeSpace " )
371+ logger.trace (" Free space = {} " , freeSpace )
370372 // Step 2. Compress the remaining bytes so that the compressed output is at most length freeSpace
371373 val (compressed, consumed) = compressRLE(bytes, freeSpace)
372- println (" Compressed = ${compressed.size } , consumed = $consumed " )
374+ logger.trace (" Compressed = { }, consumed = {} " , compressed.size, consumed )
373375
374376 compressed.forEach {
375377 if (it.length != 2 ) throw Exception ()
376378 }
377- println ( stateMsgs.howManyFit(sizeHeader, compressed))
379+ logger.trace( " Fit = {} " , stateMsgs.howManyFit(sizeHeader, compressed))
378380 if (stateMsgs.howManyFit(sizeHeader, compressed) != compressed.size) {
379381 throw Exception (" Invalid" )
380382 }
@@ -385,8 +387,8 @@ class WOODState(woodResponse: WOODDumpResponse) {
385387 val endMemIdxHexa = HexaEncoder .serializeUInt32BE(endMemIdx)
386388 val count = HexaEncoder .serializeUInt32BE(bytesHexa.length/ 2 )
387389 val payload = " ${ExecutionStateType .memState}${startMemIdxHexa}${endMemIdxHexa}${count}${bytesHexa} "
388- println (" Start position = $startMemIdx $startMemIdxHexa ${startMemIdx + consumed - 1 } $endMemIdxHexa " )
389- println (" Bytes payload: $payload " )
390+ logger.trace (" Start position = $startMemIdx $startMemIdxHexa ${startMemIdx + consumed - 1 } $endMemIdxHexa " )
391+ logger.trace (" Bytes payload: $payload " )
390392 stateMsgs.addPayload(payload)
391393 startMemIdx = endMemIdx + 1
392394
@@ -405,10 +407,10 @@ class WOODState(woodResponse: WOODDumpResponse) {
405407 if (this .woodResponse.br_table == null ) {
406408 return
407409 }
408- println (" ==============" )
409- println (" BRTable" )
410- println (" --------------" )
411- println (" Total Labels ${this .woodResponse.br_table.labels.size} " )
410+ logger.trace (" ==============" )
411+ logger.trace (" BRTable" )
412+ logger.trace (" --------------" )
413+ logger.trace (" Total Labels ${this .woodResponse.br_table.labels.size} " )
412414
413415 var elements = this .woodResponse.br_table.labels.map{ HexaEncoder .serializeUInt32BE(it) }
414416 val sizeHeader = ExecutionStateType .branchingTableState.length + 2 * 2 + 2 * 2
@@ -426,7 +428,7 @@ class WOODState(woodResponse: WOODDumpResponse) {
426428 val endTblIdxHexa = HexaEncoder .serializeUInt16BE(endTblIdx)
427429 val payload = " ${ExecutionStateType .branchingTableState}${startTblIdxHexa}${endTblIdxHexa}${elems} "
428430 stateMsgs.addPayload(payload)
429- println (" msg: startTblIdx=${startTblIdx} endTblIdx=${endTblIdx} " )
431+ logger.trace (" msg: startTblIdx=${startTblIdx} endTblIdx=${endTblIdx} " )
430432 startTblIdx = endTblIdx + 1
431433
432434 elements = elements .slice(fit .. < elements.size)
@@ -439,11 +441,11 @@ class WOODState(woodResponse: WOODDumpResponse) {
439441 if (this .woodResponse.pc == null ) {
440442 return
441443 }
442- println (" ==========" )
443- println (" PC" )
444- println (" ----------" )
444+ logger.trace (" ==========" )
445+ logger.trace (" PC" )
446+ logger.trace (" ----------" )
445447 val ser = this .serializePointer(this .woodResponse.pc)
446- println (" PC: pc=${this .woodResponse.pc} " )
448+ logger.trace (" PC: pc=${this .woodResponse.pc} " )
447449 val payload = " ${ExecutionStateType .pcState}${ser} "
448450 stateMsgs.addPayload(payload)
449451 }
@@ -454,14 +456,14 @@ class WOODState(woodResponse: WOODDumpResponse) {
454456 throw Error (" cannot serialise Allocaton Message when state is missing" )
455457 }
456458
457- println (" ==============" )
458- println (" Allocate MSG" )
459- println (" --------------" )
459+ logger.trace (" ==============" )
460+ logger.trace (" Allocate MSG" )
461+ logger.trace (" --------------" )
460462
461463 // Globals
462464
463465 val gblsAmountHex = HexaEncoder .serializeUInt32BE(wr.globals.size)
464- println (" Globals: total=${wr.globals.size} " )
466+ logger.trace (" Globals: total=${wr.globals.size} " )
465467 val globals = " ${ExecutionStateType .globalsState}${gblsAmountHex} "
466468
467469 // Table
@@ -470,13 +472,13 @@ class WOODState(woodResponse: WOODDumpResponse) {
470472 val tblSizeHex = HexaEncoder .serializeUInt32BE(wr.table.elements.size)
471473 val tbl = " ${ExecutionStateType .tableState}${tblInitHex}${tblMaxHex}${tblSizeHex} "
472474
473- println (" Table: init=${wr.table.init } max=${wr.table.max} size=${wr.table.elements.size} " )
475+ logger.trace (" Table: init=${wr.table.init } max=${wr.table.max} size=${wr.table.elements.size} " )
474476 // Memory
475477 val memInitHex = HexaEncoder .serializeUInt32BE(wr.memory.init )
476478 val memMaxHex = HexaEncoder .serializeUInt32BE(wr.memory.max)
477479 val memPagesHex = HexaEncoder .serializeUInt32BE(wr.memory.pages)
478480 val mem = " ${ExecutionStateType .memState}${memMaxHex}${memInitHex}${memPagesHex} "
479- println (" Mem: max=${wr.memory.max} init=${wr.memory.init } pages=${wr.memory.pages} " )
481+ logger.trace (" Mem: max=${wr.memory.max} init=${wr.memory.init } pages=${wr.memory.pages} " )
480482 val payload = " ${globals}${tbl}${mem} "
481483
482484 stateMsgs.addPayload(payload)
@@ -515,25 +517,25 @@ class WOODState(woodResponse: WOODDumpResponse) {
515517 rest = this .serializePointer(frame.block_key)
516518 res_str = " block_key=${frame.block_key} "
517519 }
518- println (" Frame: type=${frame.type} sp=${frame.sp} fp=${frame.fp} ra=${frame.ra} ${res_str} " )
520+ logger.trace (" Frame: type=${frame.type} sp=${frame.sp} fp=${frame.fp} ra=${frame.ra} ${res_str} " )
519521 return " ${type}${sp}${fp}${ra}${rest} "
520522 }
521523
522524 private fun serializeException (stateMsgs : HexaStateMessages ) {
523525 if (this .woodResponse.pc_error == null ) {
524526 return
525527 }
526- println (" ==========" )
527- println (" PC_ERROR" )
528- println (" ----------" )
528+ logger.trace (" ==========" )
529+ logger.trace (" PC_ERROR" )
530+ logger.trace (" ----------" )
529531 val pcError = this .serializePointer(this .woodResponse.pc_error)
530532 var exceptionMsg = " "
531533 var exceptionMsgSize = 0
532534 if (this .woodResponse.exception_msg != null && this .woodResponse.exception_msg != " " ) {
533535 exceptionMsg = this .woodResponse.exception_msg
534536 exceptionMsgSize = exceptionMsg.length
535537 }
536- println (" PC_ERROR: pc_error=${this .woodResponse.pc_error} exception_msg(#${exceptionMsgSize} chars)=${exceptionMsg} " )
538+ logger.trace (" PC_ERROR: pc_error=${this .woodResponse.pc_error} exception_msg(#${exceptionMsgSize} chars)=${exceptionMsg} " )
537539 val sizeInHexa = HexaEncoder .serializeUInt32BE(exceptionMsgSize)
538540 val msgInHexa = HexaEncoder .serializeString(exceptionMsg)
539541 val payload = " ${ExecutionStateType .errorState}${pcError}${sizeInHexa}${msgInHexa} "
@@ -548,10 +550,10 @@ class WOODState(woodResponse: WOODDumpResponse) {
548550 if (this .woodResponse.callbacks == null ) {
549551 return
550552 }
551- println (" ==============" )
552- println (" CallbackMapping" )
553- println (" --------------" )
554- println (" Total Mappings ${this .woodResponse.callbacks.size} " )
553+ logger.trace (" ==============" )
554+ logger.trace (" CallbackMapping" )
555+ logger.trace (" --------------" )
556+ logger.trace (" Total Mappings ${this .woodResponse.callbacks.size} " )
555557
556558 val ws = this
557559 var mappings = this .woodResponse.callbacks.map{ f -> ws.serializeCallbackMapping(f) }
@@ -565,7 +567,7 @@ class WOODState(woodResponse: WOODDumpResponse) {
565567 }
566568 val amountMappings = HexaEncoder .serializeUInt32BE(fit)
567569 val fms = mappings .slice(0 .. < fit).joinToString(" " )
568- println (" msg: amountMappings=${fit} " )
570+ logger.trace (" msg: amountMappings=${fit} " )
569571 val payload = " ${ExecutionStateType .callbacksState}${amountMappings}${fms} "
570572 stateMsgs.addPayload(payload)
571573 mappings = mappings .slice(fit .. < mappings.size)
@@ -595,11 +597,11 @@ class WOODState(woodResponse: WOODDumpResponse) {
595597 if (woodResponse.io == null ) {
596598 return
597599 }
598- println (" ==============" )
599- println (" IO" )
600- println (" --------------" )
600+ logger.trace (" ==============" )
601+ logger.trace (" IO" )
602+ logger.trace (" --------------" )
601603 for (ioState in woodResponse.io) {
602- println (HexaEncoder .serializeString(ioState.key) + HexaEncoder .serializeString(" \u0000 " ))
604+ logger.trace (HexaEncoder .serializeString(ioState.key) + HexaEncoder .serializeString(" \u0000 " ))
603605 }
604606 serializeList(stateMsgs, ExecutionStateType .ioState, woodResponse.io) {
605607 HexaEncoder .serializeString(it.key) + HexaEncoder .serializeString(" \u0000 " ) + HexaEncoder .serializeBool(it.output) + HexaEncoder .serializeUInt32BE(it.value)
@@ -610,10 +612,10 @@ class WOODState(woodResponse: WOODDumpResponse) {
610612 if (woodResponse.overrides == null ) {
611613 return
612614 }
613- println (" ==============" )
614- println (" Overrides" )
615- println (" --------------" )
616- println (" Found ${woodResponse.overrides.size} active overrides." )
615+ logger.trace (" ==============" )
616+ logger.trace (" Overrides" )
617+ logger.trace (" --------------" )
618+ logger.trace (" Found ${woodResponse.overrides.size} active overrides." )
617619 serializeList(stateMsgs, ExecutionStateType .overridesState, woodResponse.overrides) {
618620 HexaEncoder .serializeUInt32BE(it.fidx) + HexaEncoder .serializeUInt32BE(it.arg) + HexaEncoder .serializeUInt32BE(it.return_value)
619621 }
@@ -631,7 +633,7 @@ class WOODState(woodResponse: WOODDumpResponse) {
631633 */
632634 private fun <T > serializeList (stateMsgs : HexaStateMessages , execState : ExecutionStateType , list : List <T >, serializeElement : (T ) -> String ) {
633635 if (list.size >= 256 ) {
634- System .err. println (" WARNING: count might not fit!" )
636+ logger.warn (" WARNING: count might not fit!" )
635637 }
636638 val elementCount = HexaEncoder .serializeUInt8(list.size)
637639 val headerSize = execState.length + elementCount.length
@@ -652,9 +654,9 @@ class WOODState(woodResponse: WOODDumpResponse) {
652654 val partialListPayload = serializedElements.slice(0 .. < fitCount).joinToString(" " )
653655 serializedElements = serializedElements.slice(fitCount .. < serializedElements.size)
654656 val payload = " ${execState}${HexaEncoder .serializeUInt8(fitCount)}${partialListPayload} "
655- println (" execState = $execState " )
656- println (" elementCount = $elementCount " )
657- println (" partialListPayload = $partialListPayload " )
657+ logger.trace (" execState = {} " , execState )
658+ logger.trace (" elementCount = {} " , elementCount )
659+ logger.trace (" partialListPayload = {} " , partialListPayload )
658660 stateMsgs.addPayload(payload)
659661 }
660662 }
0 commit comments