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

From: Sergey Kandaurov <pluknet_at_gmail.com>
Date: Tue, 20 Sep 2011 12:36:53 +0400
On 19 September 2011 19:24, Anton Yuzhaninov <citrin_at_citrin.ru> wrote:
> 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 );
>

Yes, seems a typo there. Also conforms to the Solaris Dynamic Tracing Guide:
http://download.oracle.com/docs/cd/E19082-01/819-3620/gelse/index.html

(Also, td and p are somewhat different wrt. psinfo_t and lwpsinfo_t in Solaris).

-- 
wbr,
pluknet
Received on Tue Sep 20 2011 - 06:36:54 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:18 UTC