dlsym...error


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users dlsym...error
# 1  
Old 09-20-2005
Network dlsym...error

Hi,

I have ftp.so file which on nm gives the following table....

[138] |0x0000c4f8|0x000000f0|FUNC |LOCL |0 |14 |ftp_active
[160] |0x0000c00c|0x000000f0|FUNC |LOCL |0 |14 |ftp_ascii
[135] |0x0000c0fc|0x000000f0|FUNC |LOCL |0 |14 |ftp_binary
[163] |0x0000a8e0|0x000001a8|FUNC |LOCL |0 |14 |ftp_cd
[130] |0x0000bf20|0x000000ec|FUNC |LOCL |0 |14 |ftp_close
.
.
[178] |0x00000000|0x00000000|FUNC |GLOB |0 |UNDEF |Ls__9FTPClientRQ29FTPCl
ient8FileListPCc [FTPClient::Ls(FTPClient::FileList &, char const *)]


Now using dlopen and doing a dlsym on "ftp_cd", "ftp_ascii" is gives an error
saying
dlsym Couldn't find ftp_cd: ld.so.1: cor: fatal: ftp_cd: can't find symbol
while for "FTPClient::Ls(FTPClient::FileList &, char const *)" it does not give any error.
Can any one please tell me why and how can i get reference to these functions.

my code :
.
.
handle = dlopen("ftp.so",RTLD_NOW);
if(!handle) {
// print error..
}
dlerror();
fnc = ((int*)()(int)) dlsym(handle,FN_Name[i]);
if((error=dlerror())) {
// print error
}

.
.
here :
FN_Name[i] = contains mangled name entries from output of "nm" shown above.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Print Error in Console and both Error & Output in Log file - UNIX

I am writing a shell script with 2 run time arguments. During the execution if i got any error, then it needs to redirected to a error file and in console. Also both error and output to be redirected to a log file. But i am facing the below error. #! /bin/sh errExit () { errMsg=`cat... (1 Reply)
Discussion started by: sarathy_a35
1 Replies

2. Shell Programming and Scripting

IF section problem. syntax error: unexpected end of file error

Hello, I have another problem with my script. Please accept my apologies, but I am really nooby in sh scripts. I am writing it for first time. My script: returned=`tail -50 SapLogs.log | grep -i "Error"` echo $returned if ; then echo "There is no errors in the logs" fi And after... (10 Replies)
Discussion started by: jedzio
10 Replies

3. Solaris

Rpcinfo: can't contact portmapper: RPC: Authentication error; why = Failed (unspecified error)

I have two servers with a fresh install of Solaris 11, and having problems when doing rpcinfo between them. There is no firewall involved, so everything should theoretically be getting through. Does anyone have any ideas? I did a lot of Google searches, and haven't found a working solution yet. ... (2 Replies)
Discussion started by: christr
2 Replies

4. Shell Programming and Scripting

What is this error log = hda: irq timeout: error=0x00 and how to solve?

what is this error log = hda: irq timeout: error=0x00 and how to solve? every day upon checking the logs i see this error. hda: irq timeout: error=0x00 hda: irq timeout: error=0x00 hda: irq timeout: error=0x00 hda: irq timeout: error=0x00 hw_client: segfault at 0000000000000046 rip... (3 Replies)
Discussion started by: avtalan
3 Replies

5. UNIX for Dummies Questions & Answers

> 5 ")syntax error: operand expected (error token is " error

im kinda new to shell scripting so i need some help i try to run this script and get the error code > 5 ")syntax error: operand expected (error token is " the code for the script is #!/bin/sh # # script to see if the given value is correct # # Define errors ER_AF=86 # Var is... (4 Replies)
Discussion started by: metal005
4 Replies

6. UNIX for Dummies Questions & Answers

dlsym() returns 0 for an existing function

Sometimes I observe this in gdb: (gdb) br my_function Breakpoint .. at 0x...: file ..., line ... i.e., "my_function" does exist in the current executable. however, dlsym does not find it: (gdb) p dlsym(0,"my_function") $6 = 0 This is a C program; dlsym does find other defined functions and... (2 Replies)
Discussion started by: sds
2 Replies

7. AIX

nim mksysb error :/usr/bin/savevg[33]: 1016,07: syntax error

-------------------------------------------------------------------------------- Hello, help me please. I am trying to create a mksysb bakup using nim. I am geting this error, how to correct it ? : Command : failed stdout: yes stderr: no... (9 Replies)
Discussion started by: astjen
9 Replies

8. UNIX for Advanced & Expert Users

VSI-FAX error - Cannot login to server and Connecto error to host

I encounters a VSIFAX related error: vfxstat: Cannot login to server on rsac3: Connect error to host 172.16.1.45: Invalid argument It started happening last night with a core dump. Then we can't start VSIFAX again. I am runing VSI-FAX 4.2 on AIX box (0 Replies)
Discussion started by: b_jin
0 Replies

9. UNIX for Dummies Questions & Answers

awk Shell Script error : "Syntax Error : `Split' unexpected

hi there i write one awk script file in shell programing the code is related to dd/mm/yy to month, day year format but i get an error please can anybody help me out in this problem ?????? i give my code here including error awk ` # date-month -- convert mm/dd/yy to month day,... (2 Replies)
Discussion started by: Herry
2 Replies

10. UNIX for Dummies Questions & Answers

Error: Internal system error: Unable to initialize standard output file

Hey guys, need some help. Running AIX Version 5.2 and one of our cron jobs is writing errors to a log file. Any ideas on the following error message. Error: Internal system error: Unable to initialize standard output file I'm guessing more info might be needed, so let me know. Thanks (2 Replies)
Discussion started by: firkus
2 Replies
Login or Register to Ask a Question
dlsym(3)						     Library Functions Manual							  dlsym(3)

NAME
dlsym - Obtain the address of a symbol from a dlopen() object SYNOPSIS
#include <dlfcn.h> void *dlsym(void *handle, const char *name) PARAMETERS
The value returned from a call to dlopen() (and which has not since been released by a call to dlclose()). The name (character string) of the symbol being sought. DESCRIPTION
The dlsym function allows a process to obtain the address of a symbol defined within an object made accessible by a dlopen() call. The dlsym function will search for the named symbol in all objects loaded automatically as a result of loading the object referenced by handle (see dlopen(3)). Load ordering is used in dlsym() operations upon the global symbol object. The symbol resolution algorithm used will be in dependency order as described in dlopen(). RETURN VALUE
The dlsym() function will return NULL, if handle does not refer to a valid object opened by dlopen() or if the named symbol cannot be found within any of the objects associated with handle. More detailed diagnostic information is available through dlerror(). ERRORS
No errors are defined. EXAMPLES
The following example shows how one can use dlopen() and dlsym() to access either function or data objects. For simplicity, error checking has been omitted. void *handle; int *iptr, (*fptr)(int); /* open the needed object */ handle = dlopen("/usr/home/me/libfoo.so.1", RTLD_LAZY); /* find the address of function and data objects */ fptr = (int (*)(int))dlsym(handle, "my_function"); iptr = (int *)dlsym(handle, "my_object"); /* invoke function, passing value of integer as a parameter */ (*fptr)(*iptr); APPLICATION USAGE
Special-purpose values for handle are reserved for future use. These values and their meanings are: Specifies the next object after this one that defines name. This one refers to the object containing the invocation of dlsym(). The next object is the one found upon the application of a load order symbol resolution algorithm (see dlopen(3)). The next object is either one of global scope - because it was introduced as part of the original process image or because it was added with a dlopen() operation including the RTLD_GLOBAL flag) - or an object that was included in the same dlopen() operation that loaded this one. The RTLD_NEXT flag is useful to navigate an intentionally created hierarchy of multiply defined symbols created through interposition. For example, if a program wished to create an implementation of malloc() that embedded some statistics gathering about memory allocations, such an implementation could use the real malloc() definition to perform the memory allocation - and itself only embed the necessary logic to implement the statistics gathering function. NOTES
Use of the dlsym routine is the preferred mechanism for retrieving symbol addresses. This routine reliably returns the current address of a symbol at any point in the program, while the dynamic symbol resolution described previously might not function as expected due to com- piler optimizations. For example, the address of a symbol might be saved in a register prior to a dlopen call, and the saved address might then be used after the dlopen call - even if the dlopen call changed the resolution of the symbol. RELATED INFORMATION
dlclose(3), dlerror(3), dlopen(3). delim off dlsym(3)