Beispiel #1
0
void
ReceiverDebugDump(PRECEIVER Receiver)
{
    TraceInternal(("%d/%d RFDs in NDIS current/max since last report (%d pending swizzle, %d max).\n",
                   Receiver->nRxInNdis,
                   Receiver->nRxInNdisMax,
                   Receiver->nPendingSwizzle,
                   Receiver->nPendingSwizzleMax));
    Receiver->nRxInNdisMax = Receiver->nRxInNdis;
    Receiver->nPendingSwizzleMax = Receiver->nPendingSwizzle;

    TraceInternal(("%d remote notifications since last report.\n",
                   Receiver->nRemoteNotifies));
    Receiver->nRemoteNotifies = 0;

    TraceInternal(("rx_csum: udp %d, tcp %d; done %d/%d rx csum offloads/fixups.\n",
                   Receiver->rx_csum_udp_offload,
                   Receiver->rx_csum_tcp_offload,
                   Receiver->nRxCsumOffload,
                   Receiver->nRxCsumFixup));
    TraceInternal(("%d RX discards\n", Receiver->nRxDiscards));

    ReceiverCommonDebugDump(&Receiver->Common);
}
		void MergedLogDocument::Trace()
		{
			auto curScintillaInfo = GetCurrentScintillaInfo();
			//get the current line number
			unsigned int pos = ::SendMessage(curScintillaInfo.handle, SCI_GETCURRENTPOS, 0, 0);
			unsigned int curLineNo = ::SendMessage(curScintillaInfo.handle, SCI_LINEFROMPOSITION, pos, 0) + 1;

			//search lineGroupModuleInfoVec to find the right moduleindex to trace
			for (auto lineGroupModuleInfo : m_lineGroupModuleInfoVec)
			{
				if (curLineNo >= lineGroupModuleInfo.startLine || curLineNo <= lineGroupModuleInfo.endLine)
				{
					auto moduleItr = m_moduleNameTracerMap.find(lineGroupModuleInfo.moduleName);
					if (moduleItr != m_moduleNameTracerMap.end())
					{
						return TraceInternal(moduleItr->second);
					}
				}
			}
		}
Beispiel #3
0
static VOID
XenWorkItemDump(
    IN  VOID    *Context
    )
{
    KIRQL       Irql;
    NTSTATUS    status;

    UNREFERENCED_PARAMETER(Context);

    status = try_acquire_irqsafe_lock(&WorkItemDispatchLock, &Irql);
    if (!NT_SUCCESS(status)) {
        TraceInternal(("Could not acquire WorkItemDispatchLock\n"));
        return;
    }

    if (CurrentItem != NULL) {
        LARGE_INTEGER   Now;
        ULONGLONG       Milliseconds;

        KeQuerySystemTime(&Now);
        Milliseconds = (Now.QuadPart - CurrentItem->Start.QuadPart) / 10000ull;

        TraceInternal(("Processing work item '%s' for %llums\n", CurrentItem->Name, Milliseconds));
    } else {
        TraceInternal(("No current work item\n"));
    }

    if (!IsListEmpty(&PendingWorkItems)) {
        PLIST_ENTRY Head;

        TraceInternal(("Pending work items:\n"));
        Head = PendingWorkItems.Flink;
        XM_ASSERT(Head != &PendingWorkItems);

        do {
            XEN_WORKITEM *Item;

            Item = CONTAINING_RECORD(Head, XEN_WORKITEM, List);
            TraceInternal(("%s\n", Item->Name));

            Head = Head->Flink;
        } while (Head != &PendingWorkItems);
    } else {
        TraceInternal(("No pending work items\n"));
    }

    release_irqsafe_lock(&WorkItemDispatchLock, Irql);
}