--- opFns.js.orig	2016-09-27 10:00:02.000000000 +0100
+++ opFns.js	2016-09-27 10:00:59.000000000 +0100
@@ -6,6 +6,7 @@
 const logTable = require('./logTable.js')
 const ERROR = constants.ERROR
 const MAX_INT = 9007199254740991
+const fs = require('fs');
 
 // the opcode functions
 module.exports = {
@@ -507,6 +508,12 @@
 
     // add data
     log.push(mem)
+    //Added to allow tracking of instrumentation even for .call() and throw
+    let toWrite = {};
+    toWrite.address= log[0].toString('hex');
+    toWrite.topics = log[1].map(function(x){return x.toString('hex')})
+    toWrite.data = log[2].toString('hex');
+    fs.appendFileSync('./allFiredEvents', JSON.stringify(toWrite) + '\n')
     runState.logs.push(log)
   },
 

--- opFns.js.orig	2016-07-04 17:29:54.000000000 +0100
+++ opFns.js	2016-09-30 12:30:33.000000000 +0100
@@ -6,6 +6,7 @@
 const logTable = require('./logTable.js')
 const ERROR = constants.ERROR
 const MAX_INT = 9007199254740991
+const fs = require('fs');
 
 // the opcode functions
 module.exports = {
@@ -499,7 +500,6 @@
     memLength = utils.bufferToInt(memLength)
     const numOfTopics = runState.opCode - 0xa0
     const mem = memLoad(runState, memOffset, memLength)
-    subGas(runState, new BN(numOfTopics * fees.logTopicGas.v + memLength * fees.logDataGas.v))
 
     // add address
     var log = [runState.address]
@@ -507,6 +507,12 @@
 
     // add data
     log.push(mem)
+    //Added to allow tracking of instrumentation even for .call() and throw
+    let toWrite = {};
+    toWrite.address= log[0].toString('hex');
+    toWrite.topics = log[1].map(function(x){return x.toString('hex')})
+    toWrite.data = log[2].toString('hex');
+    fs.appendFileSync('./allFiredEvents', JSON.stringify(toWrite) + '\n')
     runState.logs.push(log)
   },
 

Remove gas cost for LOG opcode
Remove gas cost for LOG opcode

Should mean fewer alterations are required when switching between
regular testing and using solcover.
