Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Jan 2009 13:07:51 +0900 (JST)
From:      Masayuki FUKUI <fukui.FreeBSD@fanet.net>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   kern/130998: DTrace stops tracing because of struct thread
Message-ID:  <200901260407.n0Q47p1n041863@home.fanet.net>
Resent-Message-ID: <200901260420.n0Q4K13U076080@freefall.freebsd.org>

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

>Number:         130998
>Category:       kern
>Synopsis:       DTrace stops tracing because of struct thread
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Jan 26 04:20:00 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator:     
>Release:        FreeBSD 7.1-RELEASE-p2 amd64
>Organization:
>Environment:
System: FreeBSD base.fanet.net 7.1-RELEASE-p2 FreeBSD 7.1-RELEASE-p2 #0: Sun Jan 25 09:15:13 JST 2009 root@base.fanet.net:/usr/src/sys/amd64/compile/GENERIC amd64

>Description:
DTrace support was enabled referring to http://www.freebsd.org/doc/en/books/handbook/book.html#DTRACE

However, various DTraceToolkit applications stop tracing as follows.

# dtrace -l | wc -l
   17271

# ./hotkernel
Sampling... Hit Ctrl-C to end.
dtrace: invalid probe specifier 
        #pragma D option quiet
        profile:::profile-1001hz
        /arg0/
        {
                @pc[arg0] = count();
        }
        dtrace:::END
        {
                printa("%a %@d\n", @pc);
        }
: "/usr/lib/dtrace/psinfo.d", line 88: failed to resolve type kernel`struct thread * for identifier curthread: Unknown type name

FUNCTION                                                COUNT   PCNT

# ./procsystime -n csh
dtrace: invalid probe specifier 
 #pragma D option quiet
(...snip...)
 /*
  * Syscall count report
  */
 dtrace:::END 
 /OPT_counts/
 {
        printf("\nSyscall Counts for ");
        OPT_pid ? printf("PID %d,\n\n",PID) : 1;
        OPT_name ? printf("processes %s,\n\n",NAME) : 1;
        OPT_command ? printf("command %s,\n\n",COMMAND) : 1;
        (! OPT_filter) ? printf("all processes,\n\n") : 1;
        printf("%16s %18s\n","SYSCALL","COUNT");
        OPT_counts ? printa("%16s %@18d\n",@Counts) : 1;
 }
: "/usr/lib/dtrace/psinfo.d", line 88: failed to resolve type kernel`struct thread * for identifier curthread: Unknown type name

# ./dapptrace /bin/pwd
/var/tmp/DTraceToolkit-0.99/Bin
dtrace: invalid probe specifier 
 #pragma D option quiet
(...snip...)
 /* print counts */
 dtrace:::END
 {
        OPT_counts ? printf("\n%-49s %16s\n","CALL","COUNT") : 1;
        OPT_counts && OPT_liball ? printa("%-16s %-32s %@16d\n",@Counts) : 1;
        OPT_counts && ! OPT_liball ? printa("%-49s %@16d\n",@Counts) : 1;
 }
: "/usr/lib/dtrace/psinfo.d", line 88: failed to resolve type kernel`struct thread * for identifier curthread: Unknown type name

>How-To-Repeat:
See http://www.freebsd.org/doc/en/books/handbook/book.html#DTRACE
and run DTraceToolkit applications on FreeBSD 7.1-RELEASE.

>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200901260407.n0Q47p1n041863>