# traceprinter -f ./log.txt |grep 974897 >logg.txt
Содержимое итогового файла logg.txt:
pid:974897
t:0xbe7f9e24 CPU:00 THREAD :THCREATE pid:974897 tid:1
t:0xbe7fa33a CPU:00 THREAD :THRECEIVE pid:974897 tid:1
path:/proc/974897/as
…
path:/proc/974897/as
t:0xc015af43 CPU:00 KER_CALL:CONNECT_ATTACH/39 nd:0x00000000 pid:974897
t:0xc01a50a5 CPU:00 COMM :SND_MESSAGE rcvid:0x00000003 pid:974897
t:0xc01aee56 CPU:00 THREAD :THREADY pid:974897 tid:1
t:0xc01af51b CPU:00 THREAD :THRUNNING pid:974897 tid:1
t:0xc01b191a CPU:00 COMM :REC_MESSAGE rcvid:0x00000003 pid:974897
t:0xc01ffdb3 CPU:00 THREAD :THREPLY pid:974897 tid:1
t:0xc0280d3e CPU:00 COMM :REPLY_MESSAGE tid:1 pid:974897
t:0xc028147a CPU:00 THREAD :THREADY pid:974897 tid:1
t:0xc02f3c3a CPU:00 THREAD :THRUNNING pid:974897 tid:1
t:0xc033d978 CPU:00 THREAD :THRECEIVE pid:974897 tid:1
t:0xc0d23d45 CPU:00 COMM :SND_PULSE_DIS scoid:0x40000003 pid:974897
t:0xc0d254ff CPU:00 THREAD :THREADY pid:974897 tid:1
t:0xc124849c CPU:00 THREAD :THRUNNING pid:974897 tid:1
t:0xc12505a6 CPU:00 COMM :REC_PULSE scoid:0x40000003 pid:974897
t:0xc127d665 CPU:00 THREAD :THREPLY pid:974897 tid:1
t:0xc131846d CPU:00 COMM :REPLY_MESSAGE tid:1 pid:974897
t:0xc1319899 CPU:00 THREAD :THREADY pid:974897 tid:1
t:0xc15f1696 CPU:00 THREAD :THRUNNING pid:974897 tid:1
t:0xc16137f3 CPU:00 THREAD :THRECEIVE pid:974897 tid:1
path:/proc/974897/as
…
path:/proc/974897/as
t:0xcf974897 CPU:00 THREAD :THRECEIVE pid:1 tid:9
Информацию, представленную в данном файле нагляднее смотреть в среде, хотя среда получает эту информацию именно с помощью вышеуказанного механизма.
3. Профилирование для локального и сетевого обмена сообщениями
на уровне микроядра
Обмен сообщениями между независимыми процессами с использованием регистрации имени (локальный вариант):
client:
#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
#include <sys/dispatch.h>
int main (void)
{
char send_buf [25];
char msg_reply [25];
int fd;
fd = name_open("Mess2",0);
strcpy(send_buf, "ask");
while{
MsgSend(fd, &send_buf, sizeof(send_buf), &msg_reply, sizeof(msg_reply));
printf("CLIENT get: %s\n",msg_reply);
sleep(1);
}
name_close(fd);
printf("\nEnd of client\n" );
return EXIT_SUCCESS;
}
Server
#include <sys/iofunc.h>
#include <sys/dispatch.h>
#include <stdlib.h>
#include <stdio.h>
#include <malloc.h>
int main (void)
{
name_attach_t *attach;
int i, j ,k;
float M;
char receive_buf[25], reply_buf[25];
int rcvid, chid;
strcpy(reply_buf, "Answer");
attach = name_attach(NULL, "Mess2",0);
while(1){
rcvid=MsgReceive(attach->chid, &receive_buf, sizeof(receive_buf), NULL);
printf("SERVER get: \"%s\"\n", receive_buf);
MsgReply(rcvid, 0, &reply_buf, sizeof(reply_buf));
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.