 |
My Project
UNKNOWN_GIT_VERSION
|
Go to the source code of this file.
|
#define | omIsTrackAddr(addr) 0 |
|
#define | omIsTrackAddrPage(page) 0 |
|
#define | omIsNormalBinPageAddr(addr) omIsBinPageAddr(addr) |
|
#define | omIsBinAddrTrackAddr(addr) 0 |
|
#define | OM_FBIN 1 /* size_bin is bin */ |
|
#define | OM_FSIZE 2 /* size_bin is size */ |
|
#define | OM_FUSED 4 /* is in use, if set */ |
|
#define | OM_FKEPT 8 /* had been freed, if set */ |
|
#define | OM_FSTATIC 16 /* if set, considered to be static, i.e. never be freed */ |
|
#define | OM_FZERO 32 /* for Alloc0 */ |
|
#define | OM_FALIGN 64 /* for AllocAligned */ |
|
#define | OM_FSLOPPY 128 /* be sloppy about arguments */ |
|
#define | OM_FBINADDR 256 /* addr is bin addr */ |
|
#define | OM_FKEEP 512 /* addr is never really freed */ |
|
#define | OM_FMAX 1024 - OM_FBIN - OM_FUSED |
|
#define | omGetUsedBlocksOfPage(page) (page->used_blocks) |
|
#define | omIsStaticTrackAddr(addr) 0 |
|
#define | omCheckReturn(cond) do {omError_t _status = cond; if (_status) return _status;} while (0) |
|
#define | omCheckReturnError(cond, error) do {if (cond) return omReportError(error, report, OM_FLR_VAL, "");} while (0) |
|
#define | omCheckReturnCorrupted(cond) omCheckReturnError(cond, omError_MemoryCorrupted) |
|
#define | omAddrCheckReturn(cond) |
|
#define | omAddrCheckReturnError(cond, error) do {if (cond) return omReportAddrError(error, report, addr, bin_size, flags, OM_FLR_VAL, "");} while (0) |
|
#define | omAddrCheckReturnCorrupted(cond) omAddrCheckReturnError(cond, omError_MemoryCorrupted) |
|
|
void * | _omDebugAlloc (void *size_bin, omTrackFlags_t flags, OM_CTFL_DECL) |
|
void * | _omDebugRealloc (void *old_addr, void *old_size_bin, void *new_size_bin, omTrackFlags_t old_flags, omTrackFlags_t new_flags, OM_CTFL_DECL) |
|
void | _omDebugFree (void *addr, void *size_bin, omTrackFlags_t flags, OM_CFL_DECL) |
|
void * | _omDebugMemDup (void *addr, omTrackFlags_t flags, OM_CTFL_DECL) |
|
char * | _omDebugStrDup (const char *addr, OM_TFL_DECL) |
|
omError_t | _omDebugBin (omBin bin, OM_CFL_DECL) |
|
omError_t | _omDebugMemory (OM_CFL_DECL) |
|
omError_t | _omDebugAddr (void *addr, void *bin_size, omTrackFlags_t flags, OM_CFL_DECL) |
|
void | omFreeKeptAddr () |
|
void | omPrintUsedAddrs (FILE *fd, int max_frames) |
|
void | omPrintUsedTrackAddrs (FILE *fd, int max_frames) |
|
void | omMarkAsStaticAddr (void *addr) |
|
void | omMarkMemoryAsStatic () |
|
void | omUnMarkAsStaticAddr (void *addr) |
|
void | omUnMarkMemoryAsStatic () |
|
void | omFreeKeptAddrFromBin (omBin bin) |
|
omError_t | omCheckPtr (const void *ptr, omError_t report, OM_FLR_DECL) |
|
omError_t | _omCheckAddr (void *addr, void *size_bin, omTrackFlags_t flags, char check, omError_t report, OM_FLR_DECL) |
|
omError_t | omDoCheckBinAddr (void *addr, void *bin_size, omTrackFlags_t flags, char level, omError_t report, OM_FLR_DECL) |
|
omError_t | _omCheckBin (omBin bin, int normal_bin, char check, omError_t report, OM_FLR_DECL) |
|
omError_t | _omCheckMemory (char check, omError_t report, OM_FLR_DECL) |
|
omError_t | omReportAddrError (omError_t error, omError_t report, void *addr, void *bin_size, omTrackFlags_t flags, OM_FLR_DECL, const char *fmt,...) |
|
omError_t | omDoCheckBin (omBin bin, int normal_bin, char level, omError_t report, OM_FLR_DECL) |
|
void | omIterateTroughAddrs (int normal, int track, void(*CallBackUsed)(void *), void(*CallBackFree)(void *)) |
|
void | omIterateTroughBinAddrs (omBin bin, void(*CallBackUsed)(void *), void(*CallBackFree)(void *)) |
|
omError_t | omDoCheckAddr (void *addr, void *bin_size, omTrackFlags_t flags, char level, omError_t report, OM_FLR_DECL) |
|
int | omIsInKeptAddrList (void *addr) |
|
void * | omAddr_2_OutAddr (void *addr) |
|
int | omIsKnownMemoryRegion (omBinPageRegion region) |
|
omError_t | omCheckBinPageRegion (omBinPageRegion region, int level, omError_t report, OM_FLR_DECL) |
|
omError_t | omCheckBinPageRegions (int level, omError_t report, OM_FLR_DECL) |
|
omBinPageRegion | omFindRegionOfAddr (void *addr) |
|
int | omIsAddrOnFreeBinPage (void *addr) |
|
◆ OM_FALIGN
#define OM_FALIGN 64 /* for AllocAligned */ |
◆ OM_FBIN
#define OM_FBIN 1 /* size_bin is bin */ |
◆ OM_FBINADDR
#define OM_FBINADDR 256 /* addr is bin addr */ |
◆ OM_FKEEP
#define OM_FKEEP 512 /* addr is never really freed */ |
◆ OM_FKEPT
#define OM_FKEPT 8 /* had been freed, if set */ |
◆ OM_FMAX
◆ OM_FSIZE
#define OM_FSIZE 2 /* size_bin is size */ |
◆ OM_FSLOPPY
#define OM_FSLOPPY 128 /* be sloppy about arguments */ |
◆ OM_FSTATIC
#define OM_FSTATIC 16 /* if set, considered to be static, i.e. never be freed */ |
◆ OM_FUSED
#define OM_FUSED 4 /* is in use, if set */ |
◆ OM_FZERO
#define OM_FZERO 32 /* for Alloc0 */ |
◆ omAddrCheckReturn
#define omAddrCheckReturn |
( |
|
cond | ) |
|
Value:do \
{ \
omError_t _status = cond; \
{ \
_omPrintAddrInfo(stderr, _status, addr, bin_size,
flags, 10,
" occurred for"); \
return _status; \
} \
} while (0)
Definition at line 176 of file omDebug.h.
◆ omAddrCheckReturnCorrupted
◆ omAddrCheckReturnError
◆ omCheckReturn
◆ omCheckReturnCorrupted
◆ omCheckReturnError
◆ omGetUsedBlocksOfPage
#define omGetUsedBlocksOfPage |
( |
|
page | ) |
(page->used_blocks) |
◆ omIsBinAddrTrackAddr
#define omIsBinAddrTrackAddr |
( |
|
addr | ) |
0 |
◆ omIsNormalBinPageAddr
◆ omIsStaticTrackAddr
#define omIsStaticTrackAddr |
( |
|
addr | ) |
0 |
◆ omIsTrackAddr
#define omIsTrackAddr |
( |
|
addr | ) |
0 |
◆ omIsTrackAddrPage
#define omIsTrackAddrPage |
( |
|
page | ) |
0 |
◆ omTrackFlags_t
◆ _omCheckAddr()
◆ _omCheckBin()
◆ _omCheckMemory()
Definition at line 58 of file omDebugCheck.c.
83 while (sticky !=
NULL)
86 sticky = sticky->next;
94 s_bin = om_SpecTrackBin;
112 addr = *((
void**) addr);
122 addr = *((
void**) addr);
◆ _omDebugAddr()
◆ _omDebugAlloc()
void* _omDebugAlloc |
( |
void * |
size_bin, |
|
|
omTrackFlags_t |
flags, |
|
|
OM_CTFL_DECL |
|
|
) |
| |
Definition at line 110 of file omDebug.c.
139 #ifdef OM_INTERNAL_DEBUG
◆ _omDebugBin()
◆ _omDebugFree()
void _omDebugFree |
( |
void * |
addr, |
|
|
void * |
size_bin, |
|
|
omTrackFlags_t |
flags, |
|
|
OM_CFL_DECL |
|
|
) |
| |
Definition at line 182 of file omDebug.c.
193 #ifdef OM_INTERNAL_DEBUG
◆ _omDebugMemDup()
void* _omDebugMemDup |
( |
void * |
addr, |
|
|
omTrackFlags_t |
flags, |
|
|
OM_CTFL_DECL |
|
|
) |
| |
Definition at line 201 of file omDebug.c.
224 #ifdef OM_INTERNAL_DEBUG
◆ _omDebugMemory()
◆ _omDebugRealloc()
void* _omDebugRealloc |
( |
void * |
old_addr, |
|
|
void * |
old_size_bin, |
|
|
void * |
new_size_bin, |
|
|
omTrackFlags_t |
old_flags, |
|
|
omTrackFlags_t |
new_flags, |
|
|
OM_CTFL_DECL |
|
|
) |
| |
Definition at line 147 of file omDebug.c.
150 void* new_addr =
NULL;
168 new_size_bin = (
void*) 1;
173 status, old_flags, new_flags, track, OM_FLR_VAL);
174 #ifdef OM_INTERNAL_DEBUG
◆ _omDebugStrDup()
char* _omDebugStrDup |
( |
const char * |
addr, |
|
|
OM_TFL_DECL |
|
|
) |
| |
Definition at line 231 of file omDebug.c.
259 while ((addr[
i] !=
'\0') )
i++;
269 memcpy(ret, addr,
i);
272 #ifdef OM_INTERNAL_DEBUG
◆ omAddr_2_OutAddr()
void* omAddr_2_OutAddr |
( |
void * |
addr | ) |
|
◆ omCheckBinPageRegion()
Definition at line 503 of file omBinPage.c.
513 if (region->init_pages)
517 && region->init_addr <= region->addr + (region->pages -1)*SIZEOF_SYSTEM_PAGE));
519 region->addr + (region->pages - region->init_pages)*SIZEOF_SYSTEM_PAGE);
525 omListLength(region->current)+region->used_pages+region->init_pages != region->pages);
◆ omCheckBinPageRegions()
◆ omCheckPtr()
◆ omDoCheckAddr()
◆ omDoCheckBin()
Definition at line 253 of file omDebugCheck.c.
280 bin->max_blocks != top_bin->max_blocks);
282 if (
level <= 1)
continue;
293 page = bin->last_page;
298 omCheckReturn(page != bin->last_page && page != bin->current_page &&
302 (page->next ==
NULL || page->next->prev != page));
316 if (page == bin->current_page)
◆ omDoCheckBinAddr()
Definition at line 198 of file omDebugCheck.c.
233 ( ( ( (
unsigned long) addr)
234 - ((
unsigned long) page)
236 % (bin->sizeW * SIZEOF_VOIDP)
245 size_t size = (size_t) bin_size;
◆ omFindRegionOfAddr()
Definition at line 576 of file omBinPage.c.
580 if (region ==
NULL)
return 0;
584 if ((
char *)addr >= region->addr
585 && (
char *)addr < region->addr + (region->pages)*SIZEOF_SYSTEM_PAGE)
587 region = region->next;
589 while (region !=
NULL);
◆ omFreeKeptAddr()
Definition at line 609 of file omDebug.c.
626 next = *((
void**)addr);
632 omMarkAsFreeTrackAddr(addr, 0, &
flags, OM_FLR);
633 omFreeTrackAddr(addr);
◆ omFreeKeptAddrFromBin()
void omFreeKeptAddrFromBin |
( |
omBin |
bin | ) |
|
Definition at line 542 of file omDebug.c.
545 void* prev_addr =
NULL;
551 next_addr = *((
void**) addr);
554 if (prev_addr !=
NULL)
555 *((
void**) prev_addr) = next_addr;
564 omMarkAsFreeTrackAddr(addr, 0, &
flags, OM_FLR);
565 omFreeTrackAddr(addr);
583 next_addr = *((
void**) addr);
586 if (prev_addr !=
NULL)
587 *((
void**) prev_addr) = next_addr;
593 omMarkAsFreeTrackAddr(addr, 0, &
flags, OM_FLR);
594 omFreeTrackAddr(addr);
◆ omIsAddrOnFreeBinPage()
int omIsAddrOnFreeBinPage |
( |
void * |
addr | ) |
|
Definition at line 593 of file omBinPage.c.
595 char *c_addr=(
char *)addr;
598 if (region ==
NULL)
return 0;
601 if (c_addr > region->addr && c_addr < region->addr + (region->pages)*SIZEOF_SYSTEM_PAGE)
606 region = region->next;
608 while (region !=
NULL);
◆ omIsInKeptAddrList()
int omIsInKeptAddrList |
( |
void * |
addr | ) |
|
Definition at line 741 of file omDebugTrack.c.
748 addr = omOutAddr_2_TrackAddr(addr);
760 ptr = *((
void**) ptr);
◆ omIsKnownMemoryRegion()
◆ omIterateTroughAddrs()
void omIterateTroughAddrs |
( |
int |
normal, |
|
|
int |
track, |
|
|
void(*)(void *) |
CallBackUsed, |
|
|
void(*)(void *) |
CallBackFree |
|
) |
| |
Definition at line 503 of file omDebugCheck.c.
516 while (s_bin !=
NULL)
530 s_bin = om_SpecTrackBin;
531 while (s_bin !=
NULL)
539 while (sticky !=
NULL)
542 sticky = sticky->next;
◆ omIterateTroughBinAddrs()
void omIterateTroughBinAddrs |
( |
omBin |
bin, |
|
|
void(*)(void *) |
CallBackUsed, |
|
|
void(*)(void *) |
CallBackFree |
|
) |
| |
Definition at line 464 of file omDebugCheck.c.
473 page = bin->last_page;
484 if (CallBackFree !=
NULL) CallBackFree(addr);
488 if (CallBackUsed !=
NULL) CallBackUsed(addr);
490 addr = (
char *)((
char**) addr) + bin->sizeW;
492 }
while (i < bin->max_blocks);
499 }
while (bin !=
NULL);
◆ omMarkAsStaticAddr()
void omMarkAsStaticAddr |
( |
void * |
addr | ) |
|
◆ omMarkMemoryAsStatic()
void omMarkMemoryAsStatic |
( |
| ) |
|
◆ omPrintUsedAddrs()
void omPrintUsedAddrs |
( |
FILE * |
fd, |
|
|
int |
max_frames |
|
) |
| |
Definition at line 565 of file omDebugCheck.c.
572 fprintf(
fd,
"UsedAddrs Summary: UsedBlocks:%ld TotalSize:%ld\n",
◆ omPrintUsedTrackAddrs()
void omPrintUsedTrackAddrs |
( |
FILE * |
fd, |
|
|
int |
max_frames |
|
) |
| |
Definition at line 576 of file omDebugCheck.c.
583 fprintf(
fd,
"UsedTrackAddrs Summary: UsedBlocks:%ld TotalSize:%ld\n",
◆ omReportAddrError()
◆ omUnMarkAsStaticAddr()
void omUnMarkAsStaticAddr |
( |
void * |
addr | ) |
|
◆ omUnMarkMemoryAsStatic()
void omUnMarkMemoryAsStatic |
( |
| ) |
|
◆ om_AlwaysKeptAddrs
◆ om_KeptAddr
◆ om_LastKeptAddr
◆ om_MaxAddr
◆ om_MinAddr
#define omIsOnList(ptr, addr)
void * om_AlwaysKeptAddrs
void error(const char *fmt,...)
#define omCheckGList(ptr, next, level, report, OM_FLR_VAL)
unsigned short omTrackFlags_t
int omIsInKeptAddrList(void *addr)
size_t omSizeOfAddr(const void *addr)
static void * __omDebugAlloc(void *size_bin, omTrackFlags_t flags, char track, OM_FLR_DECL)
#define omIsOnGList(ptr, next, addr)
omError_t _omCheckMemory(char check, omError_t report, OM_FLR_DECL)
static FILE * om_print_used_addr_fd
#define omAddrCheckReturnError(cond, error)
#define omGetBinOfAddr(addr)
#define omIsTrackAddr(addr)
#define omCheckReturnError(cond, error)
void omIterateTroughAddrs(int normal, int track, void(*CallBackUsed)(void *), void(*CallBackFree)(void *))
omError_t omReportError(omError_t error, omError_t report_error, OM_FLR_DECL, const char *fmt,...)
omError_t omDoCheckBin(omBin bin, int normal_bin, char level, omError_t report, OM_FLR_DECL)
omError_t _omCheckAddr(void *addr, void *size_bin, omTrackFlags_t flags, char check, omError_t report, OM_FLR_DECL)
#define omCheckReturnCorrupted(cond)
@ omError_InvalidRangeAddr
int status int void size_t count int const void size_t count const char int flags
static omBinPageRegion om_CurrentBinPageRegion
#define omGetUsedBlocksOfPage(page)
omError_t omDoCheckBin(omBin bin, int normal_bin, char level, omError_t report, OM_FLR_DECL)
#define omCheckReturn(cond)
static void _omPrintUsedAddr(void *addr)
#define OM_IS_EMPTY_REGION(region)
#define omIsBinPageAddr(addr)
OM_INLINE_DECL omBin omGetBinOfPage(omBinPage page)
omError_t omDoCheckAddr(void *addr, void *bin_size, omTrackFlags_t flags, char level, omError_t report, OM_FLR_DECL)
static unsigned long om_total_used_blocks
size_t omSizeWOfAddr(void *addr)
#define omMemcpyW(p1, p2, l)
#define SIZEOF_OM_BIN_PAGE_HEADER
#define omGListLength(ptr, next)
static int max(int a, int b)
omError_t omCheckPtr(const void *ptr, omError_t report, OM_FLR_DECL)
omError_t omCheckBinPageRegions(int level, omError_t report, OM_FLR_DECL)
static omBin omGetOrigSpecBinOfAddr(void *addr)
omError_t _omCheckBin(omBin bin, int normal_bin, char check, omError_t report, OM_FLR_DECL)
static void __omDebugFree(void *addr, void *size_bin, omTrackFlags_t flags, OM_FLR_DECL)
#define omGetStickyOfPage(page)
#define omGetBinPageOfAddr(addr)
static omError_t omDoCheckBinPage(omBinPage page, int normal_page, int level, omError_t report, OM_FLR_DECL)
omError_t _omCheckMemory(char check, omError_t report, OM_FLR_DECL)
omError_t omDoCheckBinAddr(void *addr, void *bin_size, omTrackFlags_t flags, char level, omError_t report, OM_FLR_DECL)
static void * __omDebugRealloc(void *old_addr, void *old_size_bin, void *new_size_bin, omError_t old_status, omTrackFlags_t old_flags, omTrackFlags_t new_flags, char track, OM_FLR_DECL)
void omIterateTroughBinAddrs(omBin bin, void(*CallBackUsed)(void *), void(*CallBackFree)(void *))
@ omError_KeptAddrListCorrupted
#define omAddrCheckReturn(cond)
#define omCheckList(ptr, level, report, OM_FLR_VAL)
static size_t om_total_used_size
#define omIsBinAddrTrackAddr(addr)
static unsigned long om_NumberOfKeptAddrs
#define omGetTopBinOfPage(page)
@ omError_FreedAddrOrMemoryCorrupted
#define omGListLast(ptr, next)
#define omGetPageOfAddr(addr)
omError_t omCheckBinPageRegion(omBinPageRegion region, int level, omError_t report, OM_FLR_DECL)
omBinPage_t om_ZeroPage[]
#define omUnGetSpecBin(bin_ptr)
int omIsKnownMemoryRegion(omBinPageRegion region)
#define omIsKnownTopBin(bin, normal_bin)
static omError_t omDoCheckLargeAddr(void *addr, void *bin_size, omTrackFlags_t flags, char level, omError_t report, OM_FLR_DECL)
omError_t omCheckPtr(const void *ptr, omError_t report, OM_FLR_DECL)
static void _omPrintAddrInfo(FILE *fd, omError_t error, void *addr, void *bin_size, omTrackFlags_t flags, int max_frames, const char *s)
omBinPageRegion_t * omBinPageRegion
#define omGetTopBinOfAddr(addr)
#define omAddrCheckReturnCorrupted(cond)
#define omFindInGList(ptr, next, what, value)
omBinPageRegion omFindRegionOfAddr(void *addr)
int omIsAddrOnFreeBinPage(void *addr)
@ omError_MemoryCorrupted
#define omListLength(ptr)
omError_t omReportAddrError(omError_t error, omError_t report, void *addr, void *bin_size, omTrackFlags_t flags, OM_FLR_DECL, const char *fmt,...)
static int om_print_frames
#define omIsAddrPageAligned(addr)
#define omIsStickyBin(bin)