public static <E extends ConcurrentEntry<E>> ListReport reportDeadNodes(E e) {
        ListReport report = new ListReport();
        for (;;) {
            final E next = e.getNext();
            if (next == null) {
                break;
            }
            if (!EntryUtils.isHead(e)) {
                if (EntryUtils.isMarker(e)) {
                    ++report.totalNextMarkers;
                } else {
                    ++report.totalNextNodes;
                }
            }
            e = next;
        }
        for (;;) {
            final E prev = e.getPrev();
            if (prev == null) {
                break;
            }
            if (!EntryUtils.isTail(e)) {
                ++report.totalPrevNodes;
            }
            final E prevNext = prev.getNext();
            if (prevNext != e) {
                if (EntryUtils.isMarker(prevNext)) {
                    ++report.totalPrevMarkers;
                } else {
                    ++report.totalPrevIncorrectLinks;
                }
            }
            e = prev;
        }
        return report;
    }