Example #1
0
# Load base config file
from dxConfig import dxConfig
# Add CrashInfo group if it doesn't exist.
dxCrashInfoConfig = dxConfig.get("CrashInfo", {})
# Add default values where no values have been supplied:
for (sName, xValue) in {
        "bOutputIO": False,  # Output cdb i/o while debugging application
        "uMaxAddressOffset":
        0xFFF,  # How far from an address can a pointer be offset and still be considered to point to it?
        "uMaxFunctionOffset":
        0xFFF,  # How far from a function symbol can a pointer be offset and still be cosidered to point to it?
        "uMaxStackFramesCount":
        20,  # How many stack frames are retreived for analysis?
        "uStackHashFramesCount":
        3,  # How many stack frames are hashed for the crash id?
        "asSymbolCachePaths": [],  # Where are symbols cached?
        "bOutputFirstChanceExceptions":
        False,  # Are first chance exceptions detected and output?
        "bOutputCommandLine":
        False,  # Is the cbd.exe command line printed before execution?
}.items():
    if sName not in dxCrashInfoConfig:
        dxCrashInfoConfig[sName] = xValue
Example #2
0
import json, re, os, sys, threading;
from cCrashInfo import cCrashInfo;
from dxConfig import dxConfig;
dxCIConfig = dxConfig.get("ci", {});

if __name__ == "__main__":
  asArguments = sys.argv[1:];
  if len(asArguments) == 0:
    print "Usage:";
    print "  ci.py [options] --pids=[comma separated list of process ids]";
    print "    Attach debugger to the process(es) provided in the list. The processes must";
    print "    all have been suspended, as they will be resumed by the debugger.";
    print "  ci.py [options] path\\to\\executable.exe [arguments]";
    print "    Start the executable in the debugger with the provided arguments.";
    print;
    print "Options:";
    print "  --ci.bSaveReport=false";
    print "    Do not save a HTML formatted crash report.";
    print "  --CrashInfo.bOutputIO=true";
    print "    Show verbose cdb output and input during debugging.";
    print "  --CrashInfo.asSymbolCachePaths=[\"C:\\Symbols\"]";
    print "    Use C:\\Symbols to cache synmbol (.pdb) files.";
    print "  See dxConfig.py and cCrashInfo\dxCrashInfoConfig.py for a list of settings.";
    print "  All values must be valid JSON of the appropriate type. No checks are made";
    print "  to ensure this. Providing illegal values will most likely result in";
    print "  exceptions at some point during crash analysis. You have been warned.";
    sys.exit(1);
  auApplicationProcessIds = None;
  while len(asArguments) and asArguments[0].startswith("--"):
    if asArguments[0].startswith("--"):
      if asArguments[0].startswith("--pids="):
Example #3
0
# Load base config file
from dxConfig import dxConfig;
# Add CrashInfo group if it doesn't exist.
dxCrashInfoConfig = dxConfig.get("CrashInfo", {});
# Add default values where no values have been supplied:
for (sName, xValue) in {
  "bOutputIO": False,           # Output cdb i/o while debugging application
  "uMaxAddressOffset": 0xFFF,   # How far from an address can a pointer be offset and still be considered to point to it?
  "uMaxFunctionOffset": 0xFFF,  # How far from a function symbol can a pointer be offset and still be cosidered to point to it?
  "uMaxStackFramesCount": 20,   # How many stack frames are retreived for analysis?
  "uStackHashFramesCount": 3,   # How many stack frames are hashed for the crash id?
  "asSymbolCachePaths": [],     # Where are symbols cached?
  "bOutputFirstChanceExceptions": False, # Are first chance exceptions detected and output?
  "bOutputCommandLine": False,  # Is the cbd.exe command line printed before execution?
  "bDebugSymbolLoading": False, # Enable noizy symbol loading in cdb.
}.items():
  if sName not in dxCrashInfoConfig:
    dxCrashInfoConfig[sName] = xValue;
Example #4
0
import json, re, sys, threading;
from cCrashInfo import cCrashInfo;
from dxConfig import dxConfig;
dxCIConfig = dxConfig.get("ci", {});

if __name__ == "__main__":
  asArguments = sys.argv[1:];
  if len(asArguments) == 0:
    print "Usage:";
    print "  ci.py [options] --pids=[comma separated list of process ids]";
    print "    Attach debugger to the process(es) provided in the list. The processes must";
    print "    all have been suspended, as they will be resumed by the debugger.";
    print "  ci.py [options] path\to\executable.exe [arguments]";
    print "    Start the executable in the debugger with the provided arguments.";
    print;
    print "Options:";
    print "  --ci.bSaveReport=true";
    print "    Save a HTML formatted crash report using the crash id as the file name.";
    print "  --CrashInfo.bOutputIO=true";
    print "    Show verbose cdb output and input during debugging.";
    print "  --CrashInfo.asSymbolCachePaths=[\"C:\\Symbols\"]";
    print "    Use C:\\Symbols to cache synmbol (.pdb) files.";
    print "  See dxConfig.py and cCrashInfo\dxCrashInfoConfig.py for a list of settings.";
    print "  All values must be valid JSON of the appropriate type. No checks are made";
    print "  to ensure this. Providing illegal values will most likely result in";
    print "  exceptions at some point during crash analysis. You have been warned.";
    sys.exit(1);
  auApplicationProcessIds = None;
  while len(asArguments) and asArguments[0].startswith("--"):
    if asArguments[0].startswith("--"):
      if asArguments[0].startswith("--pids="):