Date: Thu, 17 Aug 2017 01:05:50 +0300 From: Anatoly <anatoly@kazanfieldhockey.ru> To: Mark Johnston <markj@FreeBSD.org> Cc: freebsd-dtrace@FreeBSD.org Subject: Re: how to trace linux_open, linux_stat Message-ID: <20170817010550.7efcf5bc@asd2> In-Reply-To: <20170815174045.GB44729@wkstn-mjohnston.west.isilon.com> References: <20170815201703.6e3052e5@asd2> <20170815174045.GB44729@wkstn-mjohnston.west.isilon.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 15 Aug 2017 10:40:45 -0700 Mark Johnston <markj@FreeBSD.org> wrote: > On Tue, Aug 15, 2017 at 08:17:03PM +0300, Anatoly wrote: > > Hello, I'm new to dtrace. I'm trying to run propiertary linux > > application "1C thin client" (i386) using emulators/linux-c6 under > > FreeBSD 11.1 amd64. Application starts, then stops shortly with > > error message box and same error in log file: > > 9db1fa37-b455-4f3f-b8dd-7de0ea7d6da3: File shared access error > > 'v8stg://c:/1/FileStorage': ./src/storage.cpp(5013) > > Thats why I put my hands on dtrace and trying to find out what this > > app want to do. I'm not experienced in such a things, so I just > > take a look at output of dtrace -l, and noted that there is > > linux_open and linux_stat. Then I tried: > > dtrace -n '::linux_open:entry { printf("%s %s", execname, > > copyinstr(arg0)); }' > > Thig gives output like: > > dtrace: error on enabled probe ID 1 (ID 51007: > > fbt:linux:linux_open:entry): invalid address (0xfffff80061022940) in > > action #2 at DIF offset 12 > > How can I print out arg0 here? With just (non-linux) open:entry it > > works. > > The issue is that fbt::linux_open:entry is tracing an internal kernel > function, while ::open:entry is tracing a syscall > (syscall::open:entry). > > Looking at the output of "dtrace -lv -n ::linux_open:entry", I suspect > you can get the info you want with: > > # dtrace -n '::linux_open:entry {printf("%s", > copyinstr(args[1]->path);}' > > I'm not sure how syscall tracing for the Linux binary compat layer > works. There is a linuxulator32 provider, but it doesn't seem to > provide a probe for open(2). Thank you, args[1]->path works.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20170817010550.7efcf5bc>