Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[linuxtools-dev] Q: control flow view

Hi.

I'm having some issues with the control flow view.

2.6.36 lttng enabled kernel, svn r27050 of the plugin.

I ran the following steps in single user with maxcpus=1

cc -o open-write open-write.c
lttctl -C -p <path> traceK
./open-write foo
lttctl -D traceK

This generated what seems to be a good trace. 

lttv -m textDump -t <path> | grep "syscall_.*open-write" shows all the expected
syscalls.

My issue is that the eclipse plugin doesn't show what I expected it would. 
Selecting the task in the control view and iterating the events with NextEv, 
all I see is:

kernel/0/process_fork
kernel/0/sched_schedule
kernel/0/syscall_entry
[then nothing]

If I adjust the trace to 206.000 I can see two gantt entries for open-write,  
one WAIT and another for SYSCALL but the later states that the stop time is 
undefined which is consistent with it failing to see a syscall_exit event.

Trace is at:  http://ftp.suse.com/pub/people/tonyj/temp/trace.tar.bz2

Tony

---- open-write.c ----
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

int main(int argc, char *argv[])
{
	int fd, cnt;
	pid_t pid=getpid();

	char *s="this is a sample string!";
	char buf[512];

	if (argc != 2) {
		fprintf(stderr, "usage: %s filename\n", argv[0]);
		return 1;
	}

	fd = open(argv[1], O_RDWR|O_CREAT, 0600);

	if (fd == -1) {
		perror("open");
		return 1;
	}

	if (write(fd, s, strlen(s)) != strlen(s)) {
		perror("write");
		return 1;
	}

	lseek(fd, SEEK_SET, 0);

	cnt=read(fd, buf, sizeof(buf)); 
	buf[cnt] = 0;

	
	printf("%u: %s\n", pid, buf);

	close(fd);
}
----------------------


Back to the top