Re: Sun DTrace namei()
新城@筑波大学情報です。こんにちは。
In article <h566le$ti$1@aioe.org>
tesigana@diary.ocn.ne.jp (tesigana@diary.ocn.ne.jp) writes:
> fbt::namei:entry
> /pid == $target/
> {
> p = (struct nameidata *)arg0;
> printf("%p", p->ni_dirp);
> }
> のように使用できます。
> # dtrace -s foo -c "..."
ありがとうございます。次のスクリプトで、だいたい思った通りの
動きになりました。
------------------------------------------------------------
% cat dtrace-namei.d
fbt::namei:entry
/pid == $target/
{
p = (struct nameidata *)arg0;
printf("%s", copyinstr(p->ni_dirp));
}
% dtrace -s dtrace-namei.d -c "/bin/ls /"
dtrace: script 'dtrace-namei.d' matched 1 probe
<lsの表示>
dtrace: pid 65668 has exited
CPU ID FUNCTION:NAME
1 12951 namei:entry /
1 12951 namei:entry .
1 12951 namei:entry /
%
------------------------------------------------------------
これは、いいですね。nameidata は、次の所に定義がありました。
FreeBSD とも同じなのでしょう。
http://opensource.apple.com/source/xnu/xnu-1228.9.59.color/bsd/sys/namei.h
http://opensource.apple.com/source/xnu/xnu-1228.9.59.color/bsd/vfs/vfs_lookup.c
dtrace で動的リンク・ライブラリ等も表示されるのかと思ったの
ですが、出てきません。MacOSX/Darwin で Mach-O executable を
読込むにしても、namei() は呼ばれるだろうに。どうしてかなあ。
------------------------------------------------------------
% file /bin/ls
/bin/ls: Mach-O universal binary with 2 architectures
/bin/ls (for architecture i386): Mach-O executable i386
/bin/ls (for architecture ppc7400): Mach-O executable ppc
% otool -L /bin/ls
/bin/ls:
/usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0, current version 5.4.0)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.3)
%
------------------------------------------------------------
In article <h566le$ti$1@aioe.org>
tesigana@diary.ocn.ne.jp (tesigana@diary.ocn.ne.jp) writes:
> また、-v でターゲットの詳細をレポートしてくれます。
> # dtrace -lvn fbt::namei:entry
dtrace -v でも、残念ながら MacOSX ではそんなに詳しくは出てき
ませんでした。
------------------------------------------------------------
% dtrace -lvn fbt::namei:entry
ID PROVIDER MODULE FUNCTION NAME
12951 fbt mach_kernel namei entry
Probe Description Attributes
Identifier Names: Private
Data Semantics: Private
Dependency Class: Unknown
Argument Attributes
Identifier Names: Private
Data Semantics: Private
Dependency Class: ISA
Argument Types
None
%
------------------------------------------------------------
private と言われてもね。これは、ソース見るしかなさそう。
In article <h566le$ti$1@aioe.org>
tesigana@diary.ocn.ne.jp (tesigana@diary.ocn.ne.jp) writes:
> しかも、namei って関数は Solaris にないし...
Solaris のマニュアルには、一応あるけれど、関数という訳ではな
いですね。「sysinfo プロバイダのプローブ」と書いてあります。
http://docs.sun.com/app/docs/doc/819-6259/gbxwz?a=view
\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報 \\
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735