03-15-2011
Quote:
Originally Posted by
lilezek
Well. Now it is implemented and working well. The next part is to try to modify that function while Run-Time. Is it possible? I mean, not to launch the application with modified library, but change it while is running.
No. But you could have your function check for things to decide whether it should act normally or not.
You could even have it call libc's own gettimeofday() by loading the symbol from libc with dlopen/dlsym and calling it with a function pointer... Again, libkeepalive's source tells you how to do that.
This User Gave Thanks to Corona688 For This Post:
9 More Discussions You Might Find Interesting
1. Filesystems, Disks and Memory
HELP is urgently required,
I run on SCO Unix 3 and this is the panic message that I get every time that I reboot 10U
k_trap - kernel mode trap type 0x0000000E
I have checked the swap already having the following results:
#swap -l
path dev swaplo blocks free... (3 Replies)
Discussion started by: alex_slb
3 Replies
2. SCO
hi,
I am trying to install sco openserver 5.0.4 on an old system. However, l was not able to proceed after putting the bootstr
l have this panic message of
PANIC: K_trap - kernel mode trap tupe 0x00000006
will someone kindly help to decode this error
kayode (1 Reply)
Discussion started by: kayode
1 Replies
3. Linux
ok so I just installed fedora core 6 on my dell inspiron 700m and I go to boot into linux and I get this error. Has anyone seen this before?
I also had XP Pro and Vista installed on this pc prior to putting fedora core 6 on the machine. I'm trying to setup a triple boot system.
Please Help... (2 Replies)
Discussion started by: dave043
2 Replies
4. Programming
Hi all,
I am trying to setup a program to use a device driver and am confusing buffer access between User and Kernel mode. I think all applications running in User space have to communicate with the device drivers using io control calls and then have some functions called back from the driver... (1 Reply)
Discussion started by: Brendan Kennedy
1 Replies
5. UNIX for Dummies Questions & Answers
Hi all i have queastion. Can anybody pease help me
what is user mode and kernel mode and the term "De-mountable volumes" means?
Thanks
Palash (2 Replies)
Discussion started by: palash2k
2 Replies
6. SCO
Hi, i'm another question:
I'm a directory /usr/data on my server sco unix 5.0.5:
# du /usr/data
4386948 /usr/data
I'm tried to connect to ftp directory /usr/data to this server and:
PANIC: k_trap - Kernel mode trap type 0x0000000E
Cannot dump 262040 pages to dumpdev hd(1/41):space... (3 Replies)
Discussion started by: sebpes
3 Replies
7. Programming
when transitionaning from user to kernel mode which function copies data from user mode buffer to kernel mode? (5 Replies)
Discussion started by: rupeshkp728
5 Replies
8. Programming
Hi,all:
I run my program which consists of one kernel module and one user mode process on a dual core server. The problem here is the kernel module consumes 100% of one core while the user mode process only consumes 10% of the other core, is there any solution that I can assign some computing... (1 Reply)
Discussion started by: neyshule
1 Replies
9. UNIX for Advanced & Expert Users
When accessing a user mode buffers from kernel space drivers what precautions must we take and how those precautions need to be implemented? (0 Replies)
Discussion started by: rupeshkp728
0 Replies
DLSYM(3) Linux Programmer's Manual DLSYM(3)
NAME
dlsym, dlvsym - obtain address of a symbol in a shared object or executable
SYNOPSIS
#include <dlfcn.h>
void *dlsym(void *handle, const char *symbol);
#define _GNU_SOURCE
#include <dlfcn.h>
void *dlvsym(void *handle, char *symbol, char *version);
Link with -ldl.
DESCRIPTION
The function dlsym() takes a "handle" of a dynamic loaded shared object returned by dlopen(3) along with a null-terminated symbol name, and
returns the address where that symbol is loaded into memory. If the symbol is not found, in the specified object or any of the shared
objects that were automatically loaded by dlopen(3) when that object was loaded, dlsym() returns NULL. (The search performed by dlsym() is
breadth first through the dependency tree of these shared objects.)
Since the value of the symbol could actually be NULL (so that a NULL return from dlsym() need not indicate an error), the correct way to
test for an error is to call dlerror(3) to clear any old error conditions, then call dlsym(), and then call dlerror(3) again, saving its
return value into a variable, and check whether this saved value is not NULL.
There are two special pseudo-handles that may be specified in handle:
RTLD_DEFAULT
Find the first occurrence of the desired symbol using the default shared object search order. The search will include global sym-
bols in the executable and its dependencies, as well as symbols in shared objects that were dynamically loaded with the RTLD_GLOBAL
flag.
RTLD_NEXT
Find the next occurrence of the desired symbol in the search order after the current object. This allows one to provide a wrapper
around a function in another shared object, so that, for example, the definition of a function in a preloaded shared object (see
LD_PRELOAD in ld.so(8)) can find and invoke the "real" function provided in another shared object (or for that matter, the "next"
definition of the function in cases where there are multiple layers of preloading).
The _GNU_SOURCE feature test macro must be defined in order to obtain the definitions of RTLD_DEFAULT and RTLD_NEXT from <dlfcn.h>.
The function dlvsym() does the same as dlsym() but takes a version string as an additional argument.
RETURN VALUE
On success, these functions return the address associated with symbol. On failure, they return NULL; the cause of the error can be diag-
nosed using dlerror(3).
VERSIONS
dlsym() is present in glibc 2.0 and later. dlvsym() first appeared in glibc 2.1.
ATTRIBUTES
For an explanation of the terms used in this section, see attributes(7).
+------------------+---------------+---------+
|Interface | Attribute | Value |
+------------------+---------------+---------+
|dlsym(), dlvsym() | Thread safety | MT-Safe |
+------------------+---------------+---------+
CONFORMING TO
POSIX.1-2001 describes dlsym(). The dlvsym() function is a GNU extension.
NOTES
History
The dlsym() function is part of the dlopen API, derived from SunOS. That system does not have dlvsym().
EXAMPLE
See dlopen(3).
SEE ALSO
dl_iterate_phdr(3), dladdr(3), dlerror(3), dlinfo(3), dlopen(3), ld.so(8)
COLOPHON
This page is part of release 4.15 of the Linux man-pages project. A description of the project, information about reporting bugs, and the
latest version of this page, can be found at https://www.kernel.org/doc/man-pages/.
Linux 2017-09-15 DLSYM(3)