}
        do {
                active = get_active_entry(id);
-               memset(DEBUG_DATA(active), 0, id->buf_size);
                memcpy(DEBUG_DATA(active), buf, min(len, id->buf_size));
+               if (len < id->buf_size)
+                       memset((DEBUG_DATA(active)) + len, 0, id->buf_size - len);
                debug_finish_entry(id, active, level, 0);
                len -= id->buf_size;
                buf += id->buf_size;
        }
        do {
                active = get_active_entry(id);
-               memset(DEBUG_DATA(active), 0, id->buf_size);
                memcpy(DEBUG_DATA(active), buf, min(len, id->buf_size));
+               if (len < id->buf_size)
+                       memset((DEBUG_DATA(active)) + len, 0, id->buf_size - len);
                debug_finish_entry(id, active, level, len <= id->buf_size);
                len -= id->buf_size;
                buf += id->buf_size;