Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (C) Microsoft Corporation, 1992 - 1999
Module Name:
aic.c
Abstract:
WinDbg Extension Api for interpretting AIC78XX debugging structures
Author:
Peter Wieland (peterwie) 16-Oct-1995
Environment:
User Mode.
Revision History:
--*/ #define DBG_TRACE
#include "pch.h"
#include "trace.h"
extern char *eventTypes[]; void dumpTraceInfo(traceinfo *ti);
DECLARE_API( trace )
/*++
Routine Description:
Dumps the specified AIC78xx debugging data structure
Arguments:
Ascii bits for address.
Return Value:
None.
--*/
{ ULONG_PTR traceinfoAddr; traceinfo ti;
GetAddress(args, &traceinfoAddr);
if (!ReadMemory( traceinfoAddr, &ti, sizeof(ti), NULL )) { dprintf("%p: Could not read Srb\n", traceinfoAddr); return; }
dumpTraceInfo(&ti); return; }
void dumpTraceInfo(traceinfo *ti) {
UCHAR i,j; DWORD result; char buf[64];
dprintf("AIC78xx Debugging Trace - %d total entries\n", ti->num);
for (i = 0; i < ti->num; i++) {
j = (ti->next + i) % ti->num;
if (ti->table[i].type == TRACE_TYPE_EMPTY) continue;
dprintf("event %d: ", ti->num - i);
dprintf("%s\t", eventTypes[ti->table[j].type]);
// dprintf("%lx(", ti->table[j].func);
if (ti->table[j].func != NULL) { GetSymbol((LPVOID)ti->table[j].func, buf, &result); dprintf("%s(", buf); } else { dprintf("NULL(", buf); }
dprintf("%lx, %lx, %lx)\n", ti->table[j].arg[0], ti->table[j].arg[1], ti->table[j].arg[2]); }
return; }
char *eventTypes[] = {"EMPTY", "ENTRY", "EXIT", "EVENT"};
|