MCPcopy Create free account
hub / github.com/Singular/Singular / omPrintTrackAddrInfo

Function omPrintTrackAddrInfo

omalloc/omDebugTrack.c:601–634  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

599#endif
600
601void omPrintTrackAddrInfo(FILE* fd, void* addr, int max_frames)
602{
603 omTrackAddr d_addr = omOutAddr_2_TrackAddr(addr);
604 omAssume(d_addr->track > 0);
605 if (max_frames <= 0) return;
606 if (! (d_addr->flags & OM_FUSED))
607 {
608 fputs(" freed\n",fd);
609 return;
610 }
611
612 if (max_frames > OM_MAX_KEPT_FRAMES) max_frames = OM_MAX_KEPT_FRAMES;
613
614 fputs(" allocated at ",fd);
615 if (! _omPrintBackTrace((void **)OM_ALLOC_FRAMES(d_addr),
616 (d_addr->track > 1 ? max_frames : 0),
617 fd,
618 OM_FLR_ARG(d_addr->alloc_file, d_addr->alloc_line, d_addr->alloc_r)))
619 fputs(" ??",fd);
620 if (d_addr->track > 1)
621 {
622 if (d_addr->track > 3 && ! (d_addr->flags & OM_FUSED))
623 {
624 fputs("\n freed at ",fd);
625 if (! _omPrintBackTrace(OM_FREE_FRAMES(d_addr),
626 (d_addr->track > 4 ? max_frames : 0),
627 fd,
628 OM_FLR_ARG(d_addr->free_file, d_addr->free_line, d_addr->free_r)))
629 fputs(" ??",fd);
630 }
631 }
632 fputc('\n',fd);
633 fflush(fd);
634}
635
636/*******************************************************************
637 *

Callers 1

_omPrintAddrInfoFunction · 0.85

Calls 2

omOutAddr_2_TrackAddrFunction · 0.85
_omPrintBackTraceFunction · 0.85

Tested by

no test coverage detected