From 2f4807d1b4ccce2ecfd1e3ab9283d2fca54757da Mon Sep 17 00:00:00 2001 From: AJ ONeal Date: Fri, 6 Oct 2017 20:53:03 -0600 Subject: [PATCH] WIP line-by-line debug --- bin/debug.js | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 bin/debug.js diff --git a/bin/debug.js b/bin/debug.js new file mode 100644 index 0000000..f213e7e --- /dev/null +++ b/bin/debug.js @@ -0,0 +1,54 @@ +(function () { +'use strict'; + +var input = process.argv[2]; +var fs = require('fs'); +var nb = fs.readFileSync(input, null); + +var ab = nb.buffer.slice(nb.byteOffset, nb.byteOffset + nb.byteLength) +var dv = new DataView(ab); + +// +// read header +// +console.log(''); +console.log('//////////////////'); +console.log('// HEADER //'); +console.log('//////////////////'); +console.log(''); + +console.log('id (int)', dv.getUint16(0)); + +var i = dv.getUint16(2, false); +console.log('header 0x', i.toString(16)); +var flagsstr = '' + + 'qr ' + ((i & 0x8000) >> 15) + ', ' + + 'opcode ' + ((i & 0x7800) >> 11) + ', ' + + 'aa ' + ((i & 0x400) >> 10) + ', ' + + 'tc ' + ((i & 0x200) >> 9) + ', ' + + 'rd ' + ((i & 0x100) >> 8) + ', ' + + 'ra ' + ((i & 0x80) >> 7) + ', ' + + 'res1 ' + ((i & 0x40) >> 6) + ', ' + + 'res2 ' + ((i & 0x20) >> 5) + ', ' + + 'res3 ' + ((i & 0x10) >> 4) + ', ' + + 'rcode ' + ((i & 0xF)); +console.log('(flags: ' + flagsstr); + +var qdcount = dv.getUint16(4, false); // query count +var ancount = dv.getUint16(6, false); // answer count +var nscount = dv.getUint16(8, false); // authority count +var arcount = dv.getUint16(10, false); // additional count + +console.log('qdcount', qdcount); +console.log('ancount', ancount); +console.log('nscount', nscount); +console.log('arcount', arcount); + +console.log(''); +console.log('//////////////////'); +console.log('// QUESTION //'); +console.log('//////////////////'); +console.log(''); + + +}());