[
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);
}
----------------------