2021-07-22 13:08:06 +00:00
|
|
|
/* mtrace API for `malloc'.
|
2024-01-01 18:12:26 +00:00
|
|
|
Copyright (C) 1991-2024 Free Software Foundation, Inc.
|
2001-07-06 04:58:11 +00:00
|
|
|
This file is part of the GNU C Library.
|
1996-12-20 01:39:50 +00:00
|
|
|
|
2001-07-06 04:58:11 +00:00
|
|
|
The GNU C Library is free software; you can redistribute it and/or
|
|
|
|
modify it under the terms of the GNU Lesser General Public
|
|
|
|
License as published by the Free Software Foundation; either
|
|
|
|
version 2.1 of the License, or (at your option) any later version.
|
1996-12-20 01:39:50 +00:00
|
|
|
|
2001-07-06 04:58:11 +00:00
|
|
|
The GNU C Library is distributed in the hope that it will be useful,
|
1996-12-20 01:39:50 +00:00
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
2001-07-06 04:58:11 +00:00
|
|
|
Lesser General Public License for more details.
|
1996-12-20 01:39:50 +00:00
|
|
|
|
2001-07-06 04:58:11 +00:00
|
|
|
You should have received a copy of the GNU Lesser General Public
|
2012-02-09 23:18:22 +00:00
|
|
|
License along with the GNU C Library; if not, see
|
Prefer https to http for gnu.org and fsf.org URLs
Also, change sources.redhat.com to sourceware.org.
This patch was automatically generated by running the following shell
script, which uses GNU sed, and which avoids modifying files imported
from upstream:
sed -ri '
s,(http|ftp)(://(.*\.)?(gnu|fsf|sourceware)\.org($|[^.]|\.[^a-z])),https\2,g
s,(http|ftp)(://(.*\.)?)sources\.redhat\.com($|[^.]|\.[^a-z]),https\2sourceware.org\4,g
' \
$(find $(git ls-files) -prune -type f \
! -name '*.po' \
! -name 'ChangeLog*' \
! -path COPYING ! -path COPYING.LIB \
! -path manual/fdl-1.3.texi ! -path manual/lgpl-2.1.texi \
! -path manual/texinfo.tex ! -path scripts/config.guess \
! -path scripts/config.sub ! -path scripts/install-sh \
! -path scripts/mkinstalldirs ! -path scripts/move-if-change \
! -path INSTALL ! -path locale/programs/charmap-kw.h \
! -path po/libc.pot ! -path sysdeps/gnu/errlist.c \
! '(' -name configure \
-execdir test -f configure.ac -o -f configure.in ';' ')' \
! '(' -name preconfigure \
-execdir test -f preconfigure.ac ';' ')' \
-print)
and then by running 'make dist-prepare' to regenerate files built
from the altered files, and then executing the following to cleanup:
chmod a+x sysdeps/unix/sysv/linux/riscv/configure
# Omit irrelevant whitespace and comment-only changes,
# perhaps from a slightly-different Autoconf version.
git checkout -f \
sysdeps/csky/configure \
sysdeps/hppa/configure \
sysdeps/riscv/configure \
sysdeps/unix/sysv/linux/csky/configure
# Omit changes that caused a pre-commit check to fail like this:
# remote: *** error: sysdeps/powerpc/powerpc64/ppc-mcount.S: trailing lines
git checkout -f \
sysdeps/powerpc/powerpc64/ppc-mcount.S \
sysdeps/unix/sysv/linux/s390/s390-64/syscall.S
# Omit change that caused a pre-commit check to fail like this:
# remote: *** error: sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S: last line does not end in newline
git checkout -f sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S
2019-09-07 05:40:42 +00:00
|
|
|
<https://www.gnu.org/licenses/>. */
|
1996-12-20 01:39:50 +00:00
|
|
|
|
2021-07-22 13:08:06 +00:00
|
|
|
#if !IS_IN (libc)
|
|
|
|
# include "mtrace-impl.c"
|
|
|
|
#else
|
|
|
|
# include <shlib-compat.h>
|
|
|
|
# include <libc-symbols.h>
|
1996-12-20 01:39:50 +00:00
|
|
|
#endif
|
|
|
|
|
2021-07-22 13:08:06 +00:00
|
|
|
#if IS_IN (libc) && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_34)
|
2021-07-02 19:17:34 +00:00
|
|
|
/* Compatibility symbols that were introduced to help break at allocation sites
|
|
|
|
for specific memory allocations. This is unusable with ASLR, although gdb
|
|
|
|
may allow predictable allocation addresses. Even then, gdb has watchpoint
|
|
|
|
and conditional breakpoint support which should provide the same
|
|
|
|
functionality without having this kludge. These symbols are preserved in
|
|
|
|
case some applications ended up linking against them but they don't actually
|
|
|
|
do anything anymore; not that they did much before anyway. */
|
|
|
|
|
2021-07-09 18:09:14 +00:00
|
|
|
void *mallwatch;
|
2021-07-02 19:17:34 +00:00
|
|
|
compat_symbol (libc, mallwatch, mallwatch, GLIBC_2_0);
|
|
|
|
|
|
|
|
void
|
|
|
|
tr_break (void)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
compat_symbol (libc, tr_break, tr_break, GLIBC_2_0);
|
|
|
|
#endif
|
|
|
|
|
1996-12-20 01:39:50 +00:00
|
|
|
|
|
|
|
void
|
2013-06-08 00:22:23 +00:00
|
|
|
mtrace (void)
|
1996-12-20 01:39:50 +00:00
|
|
|
{
|
2021-07-22 13:08:06 +00:00
|
|
|
#if !IS_IN (libc)
|
|
|
|
do_mtrace ();
|
Update.
1997-09-30 18:03 Ulrich Drepper <drepper@cygnus.com>
* Makerules: Undo last change.
* csu/Makefile: Define before-compile at the right place.
* aclocal.m4: Remove a.out file created by assembler test.
* set-init.c: Find set-hooks.h using <...>.
Update to db 2.3.10.
* db2/Makefile: Update.
* db2/db.h: Likewise.
* db2/db_185.h: Likewise.
* db2/db_int.h: Likewise.
* db2/btree/bt_close.c: Likewise.
* db2/btree/bt_conv.c: Likewise.
* db2/btree/bt_cursor.c: Likewise.
* db2/btree/bt_put.c: Likewise.
* db2/btree/bt_rec.c: Likewise.
* db2/btree/bt_recno.c: Likewise.
* db2/btree/btree.src: Likewise.
* db2/btree/btree_auto.c: Likewise.
* db2/clib/getlong.c: Likewise.
* db2/db/db.c: Likewise.
* db2/db/db_auto.c: Likewise.
* db2/db/db_conv.c: Likewise.
* db2/db/db_pr.c: Likewise.
* db2/db/db_ret.c: Likewise.
* db2/db/db_thread.c: Likewise.
* db2/hash/hash.c: Likewise.
* db2/hash/hash_auto.c: Likewise.
* db2/hash/hash_conv.c: Likewise.
* db2/hash/hash_dup.c: Likewise.
* db2/hash/hash_func.c: Likewise.
* db2/hash/hash_page.c: Likewise.
* db2/hash/hash_rec.c: Likewise.
* db2/include/btree.h: Likewise.
* db2/include/btree_ext.h: Likewise.
* db2/include/db.h.src: Likewise.
* db2/include/db_185.h.src: Likewise.
* db2/include/db_cxx.h: Likewise.
* db2/include/db_ext.h: Likewise.
* db2/include/db_int.h.src: Likewise.
* db2/include/db_page.h: Likewise.
* db2/include/db_shash.h: Likewise.
* db2/include/lock.h: Likewise.
* db2/include/log.h: Likewise.
* db2/include/log_ext.h: Likewise.
* db2/include/mp.h: Likewise.
* db2/include/shqueue.h: Likewise.
* db2/include/txn.h: Likewise.
* db2/lock/lock.c: Likewise.
* db2/lock/lock_deadlock.c: Likewise.
* db2/log/log.c: Likewise.
* db2/log/log_archive.c: Likewise.
* db2/log/log_auto.c: Likewise.
* db2/log/log_get.c: Likewise.
* db2/log/log_put.c: Likewise.
* db2/log/log_register.c: Likewise.
* db2/mp/mp_bh.c: Likewise.
* db2/mp/mp_fget.c: Likewise.
* db2/mp/mp_fopen.c: Likewise.
* db2/mp/mp_fput.c: Likewise.
* db2/mp/mp_fset.c: Likewise.
* db2/mp/mp_open.c: Likewise.
* db2/mutex/mutex.c: Likewise.
* db2/os/db_os_dir.c: Likewise.
* db2/progs/db_checkpoint/db_checkpoint.c: Likewise.
* db2/progs/db_deadlock/db_deadlock.c: Likewise.
* db2/progs/db_dump185/db_dump185.c: Likewise.
* db2/progs/db_load/db_load.c: Likewise.
* db2/progs/db_recover/db_recover.c: Likewise.
* db2/txn/txn.c: Likewise.
* db2/txn/txn_auto.c: Likewise.
* elf/link.h: Define struct libname_list outside struct link_map
to not confuse C++ compilers.
* include/features.h: Recognize _XOPEN_SOURCE == 500 and set
__USE_UNIX98.
* manual/creature.texi: Explain this.
* libc.map: Add new functions.
* libio/Makefile (routines): Add fseeko and ftello.
* libio/ftello.c: New file.
* libio/fseeko.c: New file.
* libio/stdio.h: Add prototypes for new functions.
* manual/stdio.texi: Document fseeko and ftello.
* posix/Makefile (routines): Add pread and pwrite.
* sysdeps/posix/pread.c: New file.
* sysdeps/posix/pwrite.c: New file.
* sysdeps/stub/pread.c: New file.
* sysdeps/stub/pwrite.c: New file.
* posix/unistd.h: Add prototypes for pread and pwrite.
Pretty print header.
Define gid_t, uid_t, off_t, pid_t if __USE_UNIX98.
Declare ctermid and cuserid if __USE_UNIX98.
(swab): Change to take void * arguments.
* string/swab.c: Change parameter to void *.
* posix/sys/types: Define gid_t, uid_t, off_t, pid_t only if not
already happened.
* manual/llio.texi: Document pread and pwrite.
* string/strings.h: Don't simply include string.h. Define BSD
functions according to Unix98.
* stdlib/tst-strtol.c: Include <string.h> not <strings.h>.
* sunrpc/clnt_simp.c: Likewise.
* malloc/Makefile (aux): Add set-freeres.
* malloc/mtrace.c: Define function release_libc_mem which calls the
__libc_subfreeres handler.
(mtrace): Register release_libc_mem.
* malloc/set-freeres.c: New file.
* intl/dcgettext.c: Define free_mem function and add to
__libc_subfreeres list.
* intl/finddomain.c: Likewise.
* intl/gettextP.h (struct loaded_domain): Add new fields use_mmap
and mmap_size. Add prototype for _nl_unloaded_domain.
* intl/loadmsgcat.c: Define new function _nl_unload_domain.
(_nl_load_domain): Store informaiton about mmap use and file size.
* intl/localealias.c (read_alias_file): Optimize locale alias file
reading by avoid frequen mallocs.
Define free_mem function and add to __libc_subfreeres list.
* locale/localeinfo.h: Make a difference between MAX_USAGE_COUNT and
undeletable.
Add prototype for _nl_unload_locale.
* locale/C-collate: Mark data as undeletable by using UNDELETABLE.
* locale/C-ctype: Likewise.
* locale/C-messages: Likewise.
* locale/C-monetary: Likewise.
* locale/C-numeric: Likewise.
* locale/C-time: Likewise.
* locale/findlocale.c (_nl_find_locale, _nl_remove_locale): Handle
MAX_USAGE_COUNT and UNDELETABLE.
(free_mem): New function. Add it to __libc_subfreeres list.
* locale/loadlocale.c: Define _nl_unload_locale function.
* misc/hsearch.c: Register hdestroy in __libc_subfreeres list.
* stdlib/fmtmsg.c (addseverity): Handle illegal severity arguments
correctly
Define free_mem function and add to __libc_subfreeres list.
* locale/programs/localedef.c (options): short form os verbose is v.
Reported by Andreas Jaeger.
* misc/sys/select.h: Define pselect only is __USE_POSIX since this
header is used in some others as well for historical reasons.
* resolv/resolv.h: Include <netinet/in.h> to make self-contained.
* string/bits/string2.h: Add missing braces and optimize strcmp a
bit more.
* sysdeps/i386/i486/bits/string.h: Likewise.
* sunrpc/rpc/auth_des.h: Include rpc/auth.h to be self-contained.
Pretty print.
* sysdeps/mach/hurd/cthreads.c: Add copyright text.
* sysdeps/unix/sysv/linux/syscalls.list: Correct prctl entry.
* sysdeps/unix/sysv/linux/sys/mman.h: Get definition of size_t.
* time/time.h: Pretty print.
1997-09-29 Paul Eggert <eggert@twinsun.com>
* time/strftime.c: Synchronize with GNU Emacs strftime.c.
(HAVE_MEMCPY): Define if emacs is defined and HAVE_BCOPY isn't.
(gmtime_r, localtime_r): Undef before defining.
(iso_week_days): Use __inline__, not inline.
1997-09-27 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/bits/mathinline.h: Rename exp2{,l,f} to
__ieee754_exp2{,l,f}.
* sysdeps/m68k/fpu/s_exp2.c: Likewise.
* sysdeps/m68k/fpu/s_exp2l.c: Likewise.
* sysdeps/m68k/fpu/s_exp2f.c: Likewise.
1997-09-27 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/soinit.c (__EH_FRAME_BEGIN__): Don't make the .eh_frame
section read-only, it contains relocations.
* elf/sofini.c (__FRAME_END__): Likewise.
1997-09-29 03:08 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/i386/i486/bits/string.h [__PIC__] (__strspn_cg, __strcspn_cg,
__strpbrk_cg, __strstr_cg): Optimize even more. No spill register
needed. Patch by NIIBE Yutaka <gniibe@mri.co.jp>.
1997-09-28 08:27 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* nis/nis_call.c (__do_niscall2): Fix return code, add missing
break in switch case.
* nis/nis_mkdir.c: Fix return codes to match Solaris version.
* nis/nis_rmdir.c: Likewise.
* nis/rpcsvc/yp_prot.h: Rename struct keydat to struct keydat_t
for C++.
1997-09-28 04:32 Ulrich Drepper <drepper@cygnus.com>
* configure.in: Fix typo.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1997-09-25 20:14 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/scsi/sg.h: New file.
* sysdeps/unix/sysv/linux/Makefile: Install <scsi/sg.h>.
1997-09-30 17:10:40 +00:00
|
|
|
#endif
|
1996-12-20 01:39:50 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void
|
2013-06-08 00:22:23 +00:00
|
|
|
muntrace (void)
|
1996-12-20 01:39:50 +00:00
|
|
|
{
|
2021-07-22 13:08:06 +00:00
|
|
|
#if !IS_IN (libc)
|
|
|
|
do_muntrace ();
|
|
|
|
#endif
|
1996-12-20 01:39:50 +00:00
|
|
|
}
|