Simple, yet powerful tool to control and communicate with GDB in nodejs. gdb-api
- built in parsing
patternbased message filter
/*** Get a GDB/MI instance ***/
const {init}=require('./')
const debuggee='./a.out'
//optinally,pass a debuggee
const gdb=await init(debuggee)
/*** Listen for any message with a pattern ***/
var pattern={
token:(token)=>token===undefined||token<30,
'class':'done'
}
var outstream=gdb.onmessage(pattern)
//stream will get all `done` messages with a token. less then 30 or undefined
/*** Listen to All messages ***/
//outstream is a nodejs stream
var outstream=gdb.onmessage(/**/)
/*** Listen to console output **/
var outstream=gdb.onmessage({'stream-type':'console-stream-output'})
/*** Listen to log output **/
var outstream=gdb.onmessage({'stream-type':'log-stream-output'})
/*** Listen to all of async type **/
var outstream=gdb.onmessage({'async-type':(a)=>a!==undefined})
.
.
.
DEBUG=msgstream:*all logs at important points in stream pipeliningDEBUG=msgstream:errorDEBUG=msgstream:counterDEBUG=msgstream:matcherDEBUG=msgstream:selfdestruct
- How do this library parses messages? It uses yniks/gdb-mi-output-parser.
- Where to find information about GDB/MI message type,class etc ? refer README.md of above mentioned repo.
- Message pattern matching ? It uses yniks/object-pattern-match.