# display the full crash dump of a specific test case # if test_id: for bin, crashes in crashbin.bins.iteritems(): for crash in crashes: if test_id == crash.extra: print crashbin.crash_synopsis(crash) sys.exit(0) # # display an overview of all recorded crashes. # if graph_name: graph = pgraph.graph() for bin, crashes in crashbin.bins.iteritems(): synopsis = crashbin.crash_synopsis(crashes[0]).split("\n")[0] if graph: crash_node = pgraph.node(crashes[0].exception_address) crash_node.count = len(crashes) crash_node.label = "[%d] %s.%08x" % ( crash_node.count, crashes[0].exception_module, crash_node.id) graph.add_node(crash_node) print "[%d] %s" % (len(crashes), synopsis) print "\t", for crash in crashes:
# parse command line options. try: opts, args = getopt.getopt(sys.argv[1:], "gh:o:l:mp:", ["graph", "host=", "monitor", "port=", "pid="]) except getopt.GetoptError: ERROR(USAGE) count = 0 udraw = False host = "127.0.0.1" port = 2542 filename = None pid = None udraw = None graph = pgraph.graph() hooks = utils.hook_container() monitor = False allocs = {} for opt, arg in opts: if opt in ("-g", "--graph"): udraw = True if opt in ("-h", "--host"): host = arg if opt in ("-o", "--port"): port = int(arg) if opt in ("-l", "--load"): filename = arg if opt in ("-p", "--pid"): pid = int(arg) if opt in ("-m", "--monitor"): monitor = True if not pid and not filename: ERROR(USAGE)