Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 5 Jun 1999 00:26:00 -0400 (EDT)
From:      Marc Tardif <intmktg@CAM.ORG>
To:        freebsd-hackers@freebsd.org
Subject:   disassembling execve (fwd)
Message-ID:  <Pine.SOL.4.10.9906050025410.10165-100000@Ocean.CAM.ORG>

next in thread | raw e-mail | index | archive | help


---------- Forwarded message ----------
Date: Fri, 4 Jun 1999 18:39:35 -0400 (EDT)
From: Marc Tardif <intmktg@CAM.ORG>
To: freebsd-questions@freebsd.org
Subject: disassembling execve

How can I disassemble the execve syscall?

I tried compiling the following code:
#include <stdio.h>

void main() {
	char *name[2];
	name[0] = "/bin/date";
	name[1] = NULL;
	execve(name[0], name, NULL);
}

... using the following command:
gcc -o program -ggdb -static program.c

... and then debugging with:
gdb program

... 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.

Thanks in advance,
Marc




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?Pine.SOL.4.10.9906050025410.10165-100000>