Files
hdf5/src/H5dbg.c
Larry Knox 89fbe00dec Merge pull request #426 in HDFFV/hdf5 from ~LRKNOX/hdf5_lrk:hdf5_1_10 to hdf5_1_10
* commit '54957d37f5aa73912763dbb6e308555e863c43f4':
  Commit copyright header change for src/H5PLpkg.c which was added after running script to make changes.
  Add new files in release_docs to MANIFEST. Cimmit changes to Makefile.in(s) and H5PL.c that resulted from running autogen.sh.
  Merge pull request #407 in HDFFV/hdf5 from ~LRKNOX/hdf5_lrk:hdf5_1_10_1 to hdf5_1_10_1
  Change copyright headers to replace url referring to file to be removed and replace it with new url for COPYING file.
2017-04-25 16:05:36 -05:00

145 lines
3.7 KiB
C
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the COPYING file, which can be found at the root of the source code *
* distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. *
* If you do not have access to either file, you may request a copy from *
* help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*-------------------------------------------------------------------------
*
* Created: H5dbg.c
* Mar 4 2006
* Quincey Koziol <koziol@ncsa.uiuc.edu>
*
* Purpose: Generic debugging routines
*
*-------------------------------------------------------------------------
*/
/****************/
/* Module Setup */
/****************/
/***********/
/* Headers */
/***********/
#include "H5private.h" /* Generic Functions */
/****************/
/* Local Macros */
/****************/
/******************/
/* Local Typedefs */
/******************/
/********************/
/* Local Prototypes */
/********************/
/*********************/
/* Package Variables */
/*********************/
/*****************************/
/* Library Private Variables */
/*****************************/
/*******************/
/* Local Variables */
/*******************/
/*-------------------------------------------------------------------------
* Function: H5_buffer_dump
*
* Purpose: Dumps a buffer of memory in an octal dump form
*
* Return: Non-negative on success/Negative on failure
*
* Programmer: Quincey Koziol
* koziol@ncsa.uiuc.edu
* Mar 4 2006
*
*-------------------------------------------------------------------------
*/
herr_t
H5_buffer_dump(FILE *stream, int indent, const uint8_t *buf,
const uint8_t *marker, size_t buf_offset, size_t buf_size)
{
size_t u, v; /* Local index variable */
FUNC_ENTER_NOAPI_NOINIT_NOERR
/*
* Check arguments.
*/
HDassert(stream);
HDassert(indent >= 0);
HDassert(buf);
HDassert(marker);
HDassert(buf_size > 0);
/*
* Print the buffer in a VMS-style octal dump.
*/
HDfprintf(stream, "%*sData follows (`__' indicates free region)...\n",
indent, "");
for(u = 0; u < buf_size; u += 16) {
uint8_t c;
HDfprintf(stream, "%*s %8d: ", indent, "", u + buf_offset);
/* Print the hex values */
for(v = 0; v < 16; v++) {
if(u + v < buf_size) {
if(marker[u + v])
HDfprintf(stream, "__ ");
else {
c = buf[buf_offset + u + v];
HDfprintf(stream, "%02x ", c);
} /* end else */
} /* end if */
else
fprintf(stream, " ");
if(7 == v)
HDfputc(' ', stream);
} /* end for */
HDfputc(' ', stream);
/* Print the character values */
for(v = 0; v < 16; v++) {
if(u + v < buf_size) {
if(marker[u + v])
HDfputc(' ', stream);
else {
c = buf[buf_offset + u + v];
if(HDisprint(c))
HDfputc(c, stream);
else
HDfputc('.', stream);
} /* end else */
} /* end if */
if(7 == v)
HDfputc(' ', stream);
} /* end for */
HDfputc('\n', stream);
} /* end for */
FUNC_LEAVE_NOAPI(SUCCEED)
} /* end H5_buffer_dump() */