Dtrace: type mismatch in sys/kern/kern_sig.c

Anton Yuzhaninov citrin at citrin.ru
Mon Sep 19 15:24:46 UTC 2011


In the file sys/kern/kern_sig.c defined DTrace probe proc:::signal-discard

SDT_PROBE_DEFINE(proc, kernel, , signal_discard, signal-discard);
SDT_PROBE_ARGTYPE(proc, kernel, , signal_discard, 0, "struct thread *");
SDT_PROBE_ARGTYPE(proc, kernel, , signal_discard, 1, "struct proc *");
SDT_PROBE_ARGTYPE(proc, kernel, , signal_discard, 2, "int");

Then latter this proble called as:

SDT_PROBE(proc, kernel, , signal_discard, ps, td, sig, 0, 0 );

type for var ps is struct sigacts* =! struct thread * (bug?)
type for var td is struct thread * =! struct proc * (bug?)
type for var sig is int == int (ok)

To match solaris DTrace probe shuild called as:

SDT_PROBE(proc, kernel, , signal_discard, td, p, sig, 0, 0 );

-- 
 Anton Yuzhaninov



More information about the freebsd-current mailing list