Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 04 Jun 1999 21:44:53 -0700
From:      Peter Wemm <peter@netplex.com.au>
To:        Marc Tardif <intmktg@CAM.ORG>
Cc:        freebsd-hackers@FreeBSD.ORG
Subject:   Re: disassembling execve (fwd) 
Message-ID:  <199906050444.VAA04735@peterw.yahoo.com>
In-Reply-To: Your message of "Sat, 05 Jun 1999 00:26:00 EDT." <Pine.SOL.4.10.9906050025410.10165-100000@Ocean.CAM.ORG> 

next in thread | previous in thread | raw e-mail | index | archive | help
Marc Tardif wrote:
> How can I disassemble the execve syscall?
[..]
> ... using the following command:
> gcc -o program -ggdb -static program.c
> ... followed by:
> disassemble main
> disassemble execve
> 
> The gcc manpage specifies that "on systems that support dynamic linking,
> this prevents linking with the shared libraries" regarding the -static
> flag. I've noted changes when using 'disassemble main' and using the
> -static flag, so it seems FreeBSD is among such systems. Yet, when running
> disassemble execve (which is what appears in the main disassembly), I get:
> "No function contains the specified address."
> 
> Well, I'm stumped, I can't find any way to disassemble execve. Please let
> me know if there's a way, the above procedure apparently works on linux
> platforms, though execve will appear as __execve in the main disassembly.

Hmm, it works for me...

(gdb) disassemble execve
Dump of assembler code for function _execve:
0x80481d8 <_execve>:    leal   0x3b,%eax
0x80481de <_execve+6>:  int    $0x80
0x80481e0 <_execve+8>:  jb     0x80481d0 <atexit+108>
0x80481e2 <_execve+10>: ret    
0x80481e3 <_execve+11>: nop    
End of assembler dump.

In this particular case, the jb reference is to cerror for setting errno.

Cheers,
-Peter



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199906050444.VAA04735>