determining the IP of a function


 
Thread Tools Search this Thread
Top Forums Programming determining the IP of a function
# 1  
Old 01-13-2011
determining the IP of a function

Is there a way to determine the "Instruction Pointer" of a function in c++, and if so can someone tell me?
# 2  
Old 01-13-2011
"instruction pointer" is a hardware register and doesn't make much sense. I think you mean the function pointer? Just the function name without the parameters gives you the pointer.

Code:
#include <stdio.h>

int main(void)
{
    printf("pointer to printf is: %p\n", printf);
}

Code:
$ ./a.out
pointer to printf is 0x8048304
$

You cannot take a pointer to main in C++ however, it's special. Some C compilers will let you though.

---------- Post updated at 01:16 PM ---------- Previous update was at 01:05 PM ----------

...and for class members, you can take a pointer like:

Code:
#include <stdio.h>

class asdf
{
public:
    void member(void)
    {
    }
};

int main(void)
{
        printf("pointer to asdf::member is %p\n", &asdf::member);
        return(0);
}

# 3  
Old 01-13-2011
Yea, I meant function pointer Smilie but is the function pointer the actual address of the first instruction in the function, or is it a virtual address?
# 4  
Old 01-13-2011
It should point to the first instruction, yes.
# 5  
Old 01-13-2011
Is there also a way to determine the function stack (start address of the function stack)?

Last edited by neur0n; 01-14-2011 at 11:15 AM..
# 6  
Old 01-14-2011
NeurOn, please read up about Calling Conventions. That will give you a general overview. Then you need to read the ABI specification for the your particular hardware platform. For example, if you are on a GNU/Linux X86_64 platform you need to read the AMD64 ABI specifcation which is available at AMD64.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Determining length of string

I have this script which is very easy: file=`echo 01114` echo $file 01114 then I ran this if ; then echo "yes";fi it returned yes even though there are only 5 digits there So then I tried file=`echo abcd` echo $file abcd if ]; then echo "yes";fi if ]; then echo "yes";fi It... (2 Replies)
Discussion started by: newbie2010
2 Replies

2. UNIX for Advanced & Expert Users

Best practice - determining what region you are on

Hello all, I have a question about what you think the best practice is to determine what region you are running on when you have a system setup with a DEV/TEST, QA, and PROD regions running the same scripts in all. So, when you run in DEV, you have a different directory structure, and you... (4 Replies)
Discussion started by: Rediranch
4 Replies

3. UNIX for Advanced & Expert Users

Determining typing latency

Hi all, When I use an editor (vi) that is spawned in a remote server, visually I could see the latency between typing a character/word and being displayed on the terminal. I could see this visually but how do I get a metric on this or how to quantify this? As expected, when I type in a editor... (6 Replies)
Discussion started by: matrixmadhan
6 Replies

4. Programming

Determining C/C++ License count

Can someone give me some guidance on what command to run to list how many compiler seats/licenses I am licensed for? This is an AIX system. Thanks, Justin ---------- Post updated 04-30-10 at 10:03 AM ---------- Previous update was 04-29-10 at 02:42 PM ---------- I can't believe nobody... (3 Replies)
Discussion started by: juredd1
3 Replies

5. Linux

Determining L2 cache size

Is there any way to know the L2 cache size from examinging to boot log. Here is my boot logLinux version 2.6.13-jaluna (root@localhost.localdomain) (gcc version 3.2.2) #4 Thu Apr 23 23:16:10 EDT 2009 TMS320DM643X port (C) VirtualLogix and others Designed for the EVMDM6437 board, Spectrum Digital... (3 Replies)
Discussion started by: mourya
3 Replies

6. Shell Programming and Scripting

Problem determining file

I got the following code, it partially works. Can someone tell me why it partially doenst work? #!/bin/sh file=$1 if then echo "File is a directory" else echo "File is not a directory!" fi heres the output: philip@philip-laptop:~/Desktop$ sh exFive.sh test.java File is... (4 Replies)
Discussion started by: philmetz
4 Replies

7. Programming

determining the object files...

hello, is there a utility to determine which object files are used to create a binary executable file?let me explain, please: for ex. there are three files: a.o b.o c.o and these files are used to create a binary called: prg namely, a.o b.o c.o -> prg so, how can i determine these three... (1 Reply)
Discussion started by: xyzt
1 Replies

8. Solaris

Determining processes that have been swapped out

Is there a way to do this in Solaris? For instance, suppose I run the following: $ swap -l swapfile dev swaplo blocks free /dev/md/dsk/d501 85,501 16 16780208 16780208 $ swap -s total: 3377368k bytes allocated + 519416k reserved = 3896784k used, 11011992k available... (1 Reply)
Discussion started by: lyonsd
1 Replies

9. UNIX for Dummies Questions & Answers

Determining file length

How can I determine what UNIX thinks the record size of any given file is?? (1 Reply)
Discussion started by: jbrubaker
1 Replies

10. UNIX for Advanced & Expert Users

determining open ports

hi all 1) how to determine available ports in a box (solaris) do i have to go for a netstat on all the ports? 2) how to block a particular port for a particular type of connection. Any help would be greatly appreciated Thanks (7 Replies)
Discussion started by: matrixmadhan
7 Replies
Login or Register to Ask a Question