#
93f27766 |
|
03-Jan-2024 |
Domagoj Stolfa <domagoj.stolfa@gmail.com> |
dtrace: Add the 'oformat' libdtrace option This option can be used to specify a format to use in DTrace output. The following formats are supported: - json - xml - html - none (default DTrace output) This is implemented using libxo and integrated into libdtrace. Client code only works with the following API: - dtrace_oformat_setup(dtrace_hdl_t *) -- to be called when output is starting. - dtrace_oformat_teardown(dtrace_hdl_t *) -- to be called when output is finished - dtrace_oformat(dtrace_hdl_t *) -- check if oformat is enabled. - dtrace_set_outfp(FILE *) -- sets the output file for oformat. - Ensure that oformat is correctly checked in the drop handler and record processing callbacks. This commit also adds tests which check if the generated output is valid (JSON, XML) and extends the dtrace(1) describing the structured output. Reviewed by: markj Discussed with: phil MFC after: 2 months Sponsored by: Innovate UK Differential Revision: https://reviews.freebsd.org/D41745
|
#
1e136a9c |
|
23-May-2023 |
Christos Margiolis <christos@FreeBSD.org> |
dtrace(1): add -d flag to dump D script post-dt_sugar By specifying the -d flag, libdtrace will dump the D script after it has applied syntactical sugar transformations (e.g if/else). This is useful for both understanding what dt_sugar does, as well as debugging it. Reviewed by: markj Approved by: markj (mentor) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D38732
|
#
b946eede |
|
03-Dec-2020 |
Andriy Gapon <avg@FreeBSD.org> |
dtrace: honor LC_NUMERIC for %'d and alike, and LC_TIME for %T Note that the public documentation on dtrace.org fails to mention %T and incorrectly documents %Y. The latter actually uses format "%Y %b %e %T" where %b is always in C locale. Discussed with: markj MFC after: 1 month Sponsored by: Panzura
|
#
066d9631 |
|
18-Nov-2019 |
Mark Johnston <markj@FreeBSD.org> |
Fix inconsistencies in anonymous DOF files. The DOF file output by dtrace -A contains only the loadable sections. However, as it was created by a call to dtrace_dof_create() without flags, the original DOF was created with the loadable sections. The result is that the DOF includes the section headers for the unloadable sections (COMMENTS and UTSNAME) without these sections actually being present. This is inconsistent. A simple change to anon_prog() ensures that the missing sections are present in the outputted DOF. Alternatively, the call to dtrace_dof_create() could pass the DTRACE_D_STRIP flag stripping out the loadable sections. As the unloadable sections contain info useful for debugging purposes they haven't been stripped. Submitted by: Graeme Jenkinson <graeme.jenkinson@cl.cam.ac.uk> MFC after: 1 week Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D21875
|
#
be9cb745 |
|
18-Aug-2016 |
Mark Johnston <markj@FreeBSD.org> |
Add a SIGINFO handler for dtrace(1). Have it print the contents of aggregations, if any. Otherwise, one needs to kill the running script to view the collected data, or add code to periodically print it. Discussed with: gnn MFC after: 1 month
|
#
b5290286 |
|
09-Apr-2016 |
Mark Johnston <markj@FreeBSD.org> |
Implement support for boot-time DTrace. This allows one to enable DTrace probes relatively early during boot, during SI_SUB_DTRACE_ANON, before dtrace(1) can invoked. The desired enabling is created using dtrace -A, which writes a /boot/dtrace.dof file and uses nextboot(8) to ensure that DTrace kernel modules are loaded and that the DOF file describing the enabling is loaded by loader(8) during the subsequent boot. The trace output can then be fetched with dtrace -a. With this commit, boot-time DTrace is only functional on i386 and amd64: on other architectures, the high-resolution timer frequency is initialized during SI_SUB_CLOCKS and is thus not available when the anonymous tracing state is initialized. On x86, the TSC is used and is thus available earlier. MFC after: 1 month Relnotes: yes
|
#
bc96366c |
|
17-Jan-2015 |
Steven Hartland <smh@FreeBSD.org> |
Mechanically convert cddl sun #ifdef's to illumos Since the upstream for cddl code is now illumos not sun, mechanically convert all sun #ifdef's to illumos #ifdef's which have been used in all newer code for some time. Also do a manual pass to correct the use if #ifdef comments as per style(9) as well as few uses of #if defined(__FreeBSD__) vs #ifndef illumos. MFC after: 1 month Sponsored by: Multiplay
|
#
486de25d |
|
02-Oct-2014 |
Mark Johnston <markj@FreeBSD.org> |
Have dtrace(1) handle SIGPIPE by cleaning up and exiting. Additionally, install signal handlers when running in list mode (-l), and acknowledge interrupts by cleaning up and exiting. This ensures that a command like $ dtrace -l -P 'pid$target' -p <target PID> | less won't cause the ptrace(2)d target process to be killed if less(1) exits before all dtrace output is consumed. Reported by: Anton Yuzhaninov <citrin+bsd@citrin.ru> Differential Revision: https://reviews.freebsd.org/D880 Reviewed by: rpaulo MFC after: 1 month Sponsored by: EMC / Isilon Storage Division
|
#
03836978 |
|
16-Apr-2013 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
DTrace: Revert r249367 The following change from illumos brought caused DTrace to pause in an interactive environment: 3026 libdtrace should set LD_NOLAZYLOAD=1 to help the pid provider This was not detected during testing because it doesn't affect scripts. We shouldn't be changing the environment, especially since the LD_NOLAZYLOAD option doesn't apply to our (GNU) ld. Unfortunately the change from upstream was made in such a way that it is very difficult to separate this change from the others so, at least for now, it's better to just revert everything. Reference: https://www.illumos.org/issues/3026 Reported by: Navdeep Parhar and Mark Johnston
|
#
cf4e0cc1 |
|
20-Feb-2013 |
Justin T. Gibbs <gibbs@FreeBSD.org> |
Orphaned processes that are being traced are killed by the kernel. Properly restore, continue, and detach from processes being DTraced when DTrace exits with an error so the program being inspected is not terminated. cddl/contrib/opensolaris/cmd/dtrace/dtrace.c: In fatal(), the generic error handler, close the DTrace handle as is done in the "probe/script" error handler dfatal(). fatal() can be invoked after DTrace attaches to processes (e.g. a script specified by command line argument can't be found) and closing the handle will release them. Submitted by: Spectra Logic Corporation Reviewed by: rpaulo, gnn
|
#
96b32677 |
|
25-Jul-2012 |
George V. Neville-Neil <gnn@FreeBSD.org> |
Revert previous commit. The bug was actually caused by an issue in pre 1.8.5 versions of sudo which were sending too many SIGINTs to processes when the user hit Ctrl-C. Pointed out by: avg@, rpaulo@, sbruno@
|
#
d83f1ab9 |
|
24-Jul-2012 |
George V. Neville-Neil <gnn@FreeBSD.org> |
Fix a bug in interrupt handling so that we're only considered impatient if we sent more than 2 INT signals. This fixes a bug where we wouldn't see aggregations print on the command line if we Ctrl-C'd a dtrace script or command line invocation. MFC after: 2 weeks
|
#
1dcc79e3 |
|
16-Dec-2011 |
Dimitry Andric <dim@FreeBSD.org> |
In cddl/contrib/opensolaris/cmd/dtrace/dtrace.c, fix some obtuse snprintf tricks. MFC after: 1 week
|
#
a7d5f7eb |
|
19-Oct-2010 |
Jamie Gritton <jamie@FreeBSD.org> |
A new jail(8) with a configuration file, to replace the work currently done by /etc/rc.d/jail.
|
#
0f2bd1e8 |
|
21-Aug-2010 |
Rui Paulo <rpaulo@FreeBSD.org> |
Add libdtrace support for tracing userland programs. Summary of changes: * Implement a compatibility shim between Solaris libproc and our libproc and remove several ifdefs because of this. * Port the drti to FreeBSD. * Implement the missing DOODAD sections * Link with libproc and librtld_db * Support for ustack, jstack and uregs (by sson@) * Misc bugfixing When writing the SUWN_dof section, we had to resort to building the ELF file layout by "hand". This is the job of libelf, but our libelf doesn't support this yet. When libelf is fixed, we can remove the code under #ifdef BROKEN_LIBELF. Sponsored by: The FreeBSD Foundation
|
#
fe0506d7 |
|
09-Mar-2010 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Create the altix project branch. The altix project will add support for the SGI Altix 350 to FreeBSD/ia64. The hardware used for porting is a two-module system, consisting of a base compute module and a CPU expansion module. SGI's NUMAFlex architecture can be an excellent platform to test CPU affinity and NUMA-aware features in FreeBSD.
|
#
56b35563 |
|
05-Nov-2008 |
Craig Rodrigues <rodrigc@FreeBSD.org> |
Merge latest DTrace changes from Perforce. Approved by: jb
|
#
d7f03759 |
|
19-Oct-2008 |
Ulf Lilleengen <lulf@FreeBSD.org> |
- Import the HEAD csup code which is the basis for the cvsmode work.
|
#
a6847cf6 |
|
25-Apr-2008 |
John Birrell <jb@FreeBSD.org> |
Apply FreeBSD changes. There is an incomplete piece of code in here which requires the process handling library which is still under development.
|