Beispiel #1
0
void
rge_pkt_dump(rge_t *rgep, rge_bd_t *hrbdp, sw_rbd_t *srbdp, const char *msg)
{
    rge_problem(rgep, "driver-detected hardware error: %s", msg);

    minidump(rgep, "hardware descriptor", hrbdp, sizeof (*hrbdp));

    rge_log(rgep, "PCI address %lx flags_len 0x%x"
            "vlan_tag 0x%x",
            hrbdp->host_buf_addr,
            hrbdp->flags_len,
            hrbdp->vlan_tag);

    if (srbdp != NULL) {
        minidump(rgep, "software descriptor", srbdp, sizeof (*srbdp));

        rge_log(rgep, "PCI address %llx buffer len 0x%x token 0x%x",
                srbdp->rx_buf->pbuf.cookie.dmac_laddress,
                srbdp->rx_buf->pbuf.alength,
                srbdp->rx_buf->pbuf.token);

        minidump(rgep, "packet data", srbdp->rx_buf->pbuf.mem_va,
                 hrbdp->flags_len & RBD_LEN_MASK);
    }
}
Beispiel #2
0
bool	GenericDumper::doDump(DumpParam* param)
{
	// 하나라도 성공하면 그냥 넘어간다.
	bool stopSearch = false;

	if (prevCallback_ != NULL)
	{
		prevCallback_(param);
	}

	DumpMinidump minidump(getDumpFolder(), getPrefix());
	if (minidump.dump(param) == true)
	{
		stopSearch = true;
	}

	DumpReporter reporter(getDumpFolder(), getPrefix());
	if (reporter.dump(param) == true)
	{
		stopSearch = true;
	}

	if (postCallback_ != NULL)
	{
		postCallback_(param);
	}

	return stopSearch;
}