Thread View: nl.comp.os.linux
2 messages
2 total messages
Started by Arnaud Westenberg
Wed, 24 Nov 1999 00:00
Uitvoeren van een programma en strace
Author: Arnaud Westenberg
Date: Wed, 24 Nov 1999 00:00
Date: Wed, 24 Nov 1999 00:00
57 lines
2984 bytes
2984 bytes
Hallo allemaal,
Ik heb een paar vraagjes over "strace" en de uitvoer er van.
Ik begrijp dat het programma een stukje geheugen opeist en weer
vrijgeeft, maar voor mij is het nog zoiets als de bel en de klepel :-)
Zou iemand mij het mechanisme van een programma uitvoeren kunnen
uitleggen, of me verwijzen naar een internetpagina?
B.V.D.
Hier is de (bekende) programma code:
***********************************************************
#include <stdio.h>
int main()
{
printf("Hello World\n");
return 0;
}
***********************************************************
En dit is de uitvoer van >strace ./hello :
***********************************************************
execve("./hello", ["./hello"], [/* 24 vars */]) = 0
brk(0) = 0x8049548
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/etc/ld.so.cache", O_RDONLY) = 4
fstat(4, {st_mode=0, st_size=0, ...}) = 0
mmap(0, 43880, PROT_READ, MAP_PRIVATE, 4, 0) = 0x40014000
close(4) = 0
open("/lib/libc.so.6", O_RDONLY) = 4
fstat(4, {st_mode=0, st_size=0, ...}) = 0
read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3"..., 4096) = 4096
mmap(0, 974392, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0x4001f000
mprotect(0x40105000, 32312, PROT_NONE) = 0
mmap(0x40105000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4,
0xe5000) = 0x40105000
mmap(0x4010a000, 11832, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4010a000
close(4) = 0
munmap(0x40014000, 43880) = 0
personality(PER_LINUX) = 0
getpid() = 1926
fstat(1, {st_mode=S_ISGID|03, st_size=0, ...}) = 0
mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x40014000
ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0
write(1, "Hello World\n", 12) = 12
munmap(0x40014000, 4096) = 0
_exit(0) = ?
*******************************************************************
(Ik heb LD_LIBRARY_PATH voor het gemak even leeg gemaakt!)
Groeten Arnaud
Re: Uitvoeren van een programma en strace
Author: jwk
Date: Sat, 27 Nov 1999 00:00
Date: Sat, 27 Nov 1999 00:00
77 lines
3467 bytes
3467 bytes
On Wed, 24 Nov 1999 13:26:21 -0500, Arnaud Westenberg
<arnaud@casema.net> wrote:
>Hallo allemaal,
>
>Ik heb een paar vraagjes over "strace" en de uitvoer er van.
>Ik begrijp dat het programma een stukje geheugen opeist en weer
>vrijgeeft, maar voor mij is het nog zoiets als de bel en de klepel :-)
>Zou iemand mij het mechanisme van een programma uitvoeren kunnen
>uitleggen, of me verwijzen naar een internetpagina?
>
>B.V.D.
>
>Hier is de (bekende) programma code:
>***********************************************************
>#include <stdio.h>
>
>int main()
>{
>printf("Hello World\n");
>return 0;
>}
>***********************************************************
>
>
>En dit is de uitvoer van >strace ./hello :
>***********************************************************
>execve("./hello", ["./hello"], [/* 24 vars */]) = 0
>brk(0) = 0x8049548
>open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or
>directory)
>open("/etc/ld.so.cache", O_RDONLY) = 4
bestand /etc/ld.so.cache wordt geopend als handle 4
>fstat(4, {st_mode=0, st_size=0, ...}) = 0
>mmap(0, 43880, PROT_READ, MAP_PRIVATE, 4, 0) = 0x40014000
>close(4) = 0
hij voegt een stukje van het bestand toe aan het geheugen wat dit
programma ziet en sluit hem weer.
>open("/lib/libc.so.6", O_RDONLY) = 4
>fstat(4, {st_mode=0, st_size=0, ...}) = 0
>read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3"..., 4096) = 4096
>mmap(0, 974392, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0x4001f000
>mprotect(0x40105000, 32312, PROT_NONE) = 0
>mmap(0x40105000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4,
>0xe5000) = 0x40105000
>mmap(0x4010a000, 11832, PROT_READ|PROT_WRITE,
>MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4010a000
>close(4) = 0
>munmap(0x40014000, 43880) = 0
idem voor /lib/libc.so.6
Dit zijn standaard libraries die in *bijna* elk programma gebruikt
worden.
>personality(PER_LINUX) = 0
>getpid() = 1926
>fstat(1, {st_mode=S_ISGID|03, st_size=0, ...}) = 0
>mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
>0x40014000
>ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0
>write(1, "Hello World\n", 12) = 12
>munmap(0x40014000, 4096) = 0
>_exit(0) = ?
>*******************************************************************
>
>(Ik heb LD_LIBRARY_PATH voor het gemak even leeg gemaakt!)
>
>Groeten Arnaud
Succes,
Jurriaan
--
Die then. This is my cure for sore knees.
Jack Vance - Lyonesse
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads