diff options
author | hunt <hunt> | 2007-03-21 15:09:57 +0000 |
---|---|---|
committer | hunt <hunt> | 2007-03-21 15:09:57 +0000 |
commit | c45f6fbff2e7e32b1b9cd4c6e726fa202a4542cf (patch) | |
tree | 9a242cf5d0dbf2b9bd3013ac529c22de0c93faf1 /runtime/transport | |
parent | ee8d9a0d5b784bc02d07ff587d71b1f9d4557635 (diff) | |
download | systemtap-steved-c45f6fbff2e7e32b1b9cd4c6e726fa202a4542cf.tar.gz systemtap-steved-c45f6fbff2e7e32b1b9cd4c6e726fa202a4542cf.tar.xz systemtap-steved-c45f6fbff2e7e32b1b9cd4c6e726fa202a4542cf.zip |
2007-03-21 Martin Hunt <hunt@redhat.com>
* sym.h: Declare _stp_module_relocate.
* sym.c (_stp_module_relocate): Add comments, reformat, add
a way for "last" cached values to be cleared when modules
are removed.
(_stp_symbol_print): Simplify and remove static buffer.
(_stp_symbol_snprint): Ditto.
* symbols.c (_stp_del_module): Add a call to _stp_module_relocate
to clear its cache.
Diffstat (limited to 'runtime/transport')
-rw-r--r-- | runtime/transport/ChangeLog | 5 | ||||
-rw-r--r-- | runtime/transport/symbols.c | 5 |
2 files changed, 9 insertions, 1 deletions
diff --git a/runtime/transport/ChangeLog b/runtime/transport/ChangeLog index 90661baf..f752ccd4 100644 --- a/runtime/transport/ChangeLog +++ b/runtime/transport/ChangeLog @@ -1,3 +1,8 @@ +2007-03-21 Martin Hunt <hunt@redhat.com> + + * symbols.c (_stp_del_module): Add a call to _stp_module_relocate + to clear its cache. + 2007-03-20 Frank Ch. Eigler <fche@elastic.org> * symbols.c (_stp_do_symbols): Add cautionary blurb for important diff --git a/runtime/transport/symbols.c b/runtime/transport/symbols.c index ee5e967e..9780b0b1 100644 --- a/runtime/transport/symbols.c +++ b/runtime/transport/symbols.c @@ -1,7 +1,7 @@ /* -*- linux-c -*- * symbols.c - stp symbol and module functions * - * Copyright (C) Red Hat Inc, 2006 + * Copyright (C) Red Hat Inc, 2006, 2007 * * This file is part of systemtap, and is free software. You can * redistribute it and/or modify it under the terms of the GNU General @@ -110,6 +110,9 @@ static void _stp_del_module(struct _stp_module *mod) // kbug("deleting %s\n", mod->name); + /* signal relocation code to clear its cache */ + _stp_module_relocate((char *)-1, NULL, 0); + /* remove module from the arrays */ for (num = 0; num < _stp_num_modules; num++) { if (_stp_modules[num] == mod) |