summaryrefslogtreecommitdiffstats
path: root/cddl/contrib/opensolaris/lib/libdtrace/common
Commit message (Collapse)AuthorAgeFilesLines
* Preserve the errno value of an ioctl before calling free(3). Previously,markj2014-08-043-11/+14
| | | | | | | errno was very occasionally being clobbered, resulting in a bogus error from dt_consume() and thus an error from dtrace(1). MFC after: 2 weeks
* Remove ia64.marcel2014-07-071-22/+2
| | | | | | | | | | | | | | | | | This includes: o All directories named *ia64* o All files named *ia64* o All ia64-specific code guarded by __ia64__ o All ia64-specific makefile logic o Mention of ia64 in comments and documentation This excludes: o Everything under contrib/ o Everything under crypto/ o sys/xen/interface o sys/sys/elf_common.h Discussed at: BSDcan
* MFV illumosrpaulo2014-06-266-38/+724
| | | | | | | | 4471 DTrace count() with histogram 4472 DTrace full width distribution histograms 4473 DTrace frequency trails MFC after: 2 weeks
* MFV illumosrpaulo2014-06-2622-116/+724
| | | | | | | | | | 4474 DTrace Userland CTF Support 4475 DTrace userland Keyword 4476 DTrace tests should be better citizens 4479 pid provider types 4480 dof emulation is missing checks MFC after: 2 weeks
* MFV illumosrpaulo2014-06-261-2/+8
| | | | | | 4477 DTrace should speak JSON MFC after: 2 weeks
* MFV illumos r266986:rpaulo2014-06-261-3/+7
| | | | | | | | 2915 DTrace in a zone should see "cpu", "curpsinfo", et al 2916 DTrace in a zone should be able to access fds[] 2917 DTrace in a zone should have limited provider access MFC after: 2 weeks
* Revert r267898.rpaulo2014-06-266-737/+39
|
* Bring the following change from the illumos-joyent repository:rpaulo2014-06-266-39/+737
| | | | | | | | | | | | commit 78e24ab6803bbe11ba37642624e1498ede5b239d Author: Bryan Cantrill <bryan@joyent.com> Date: Thu Oct 31 01:20:54 2013 OS-1688 DTrace count() with histogram OS-2360 DTrace full width distribution histograms OS-2361 DTrace frequency trails MFC after: 2 weeks
* MFV r258381:pfg2014-06-251-2/+7
| | | | | | | | | | | | | 4251 libdtrace leaks open file handles Illumos commit: 93ed8d0d4b068b95d0bb50d57bb854df462a8485 (partial) Reference: https://www.illumos.org/issues/4251 Discussed with: Robert Mustacchi Obtained from: Illumos MFC after: 1 week
* Re-apply r248644. This fixes an annoying problem which caused dtrace -c tomarkj2014-05-081-1/+1
| | | | | | | | | | | fail to attach to stripped binaries. With the _r_debug_postinit symbol, dtrace(1) can now set a breakpoint in the victim process after it has registered its DOF table(s) with the kernel. r_debug_state cannot be used for this purpose since it is called before DOF is made available, in which case dtrace(1) cannot create USDT probes before the program begins execution. MFC after: 2 weeks
* Use the correct format specifiers for wide characters and strings of widemarkj2014-04-151-0/+5
| | | | | | characters. MFC after: 1 week
* MFV r258379;pfg2014-04-023-8/+23
| | | | | | | | | | | | | | 4248 dtrace(1M) should never create DOF with empty probes section 4249 Only probes from the first DTrace object file will be included Illumos Revision: 4a20ab41aadcb81c53e72fc65886e964e9add59 Reference: https://www.illumos.org/issues/4248 https://www.illumos.org/issues/4249 Obtained from: Illumos MFC after: 1 month
* When our linker merges .SUNW_dof sections from multiple files, it simplymarkj2014-03-011-30/+58
| | | | | | | | | | | concatenates the DOF tables into one section. Previously, the USDT init code in drti.o would only look at the first table in the DOF section; with this change, it iterates over all the tables, passing each DOF table to the kernel. PR: 186821 Submitted by: Fedor Indutny <fedor@indutny.com> MFC after: 1 month
* 1452 DTrace buffer autoscaling should be less violentmarkj2014-02-221-27/+0
| | | | | | | | | | | illumos/illumos-gate@6fb4854bed54ce82bd8610896b64ddebcd4af706 This fixes the tst.resize1.d and tst.resize2.d DTrace tests, which have been failing since r261122 since they were causing dtrace(1) to attempt to allocate and use large amounts of memory, and get killed by the OOM killer as a result. MFC after: 1 month
* dtrace: remove unexplained 16MB limitation from dt_alloc/dt_zallocavg2014-01-241-10/+0
| | | | | | | | | | The limitation was introduced in r178556 without any note or comment. It seems pretty artificial and now it leads to problems like the following: $ dtrace -x bufsize=17m -n ... dtrace: processing aborted: Memory allocation failure OpenSolaris and illumos never had this limitation. Sponsored by: HybridCluster
* When clearing relocations to __dtrace* symbols, handle both SHT_REL andmarkj2013-12-291-4/+11
| | | | | | | | SHT_RELA sections properly instead of assuming that the relocation section is of type SHT_REL. Submitted by: Prashanth Kumar <pra_udupi@yahoo.co.in> (original version) MFC after: 1 month
* The uaddr, ufunc, umod and usym functions all seem to work as expected onmarkj2013-12-041-8/+0
| | | | | | FreeBSD, so stop hiding them behind a "#if defined(sun)". Reported by: Prashanth Kumar <pra_udupi@yahoo.co.in>
* Use mkstemp(3) to create the temporary file used in the FreeBSD-specificmarkj2013-12-031-8/+10
| | | | portions of dtrace_program_link().
* Don't try to use the 32-bit drti.o unless the data model is explicitly setmarkj2013-11-091-3/+1
| | | | | | | | | | | | | | to ILP32. Otherwise dtrace -G will attempt to use it on amd64 if it can't determine which data model to use, which happens when -64 is omitted and no object files are provided, e.g. with # dtrace -G -n BEGIN This would result in a linker error, but now works properly. Also remove an unnecessary #ifdef. MFC after: 2 weeks
* Add a function, memstr, which can be used to convert a buffer ofmarkj2013-10-161-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | null-separated strings to a single string. This can be used to print the full arguments of a process using execsnoop (from the DTrace toolkit) or with the following one-liner: dtrace -n 'syscall::execve:return {trace(curpsinfo->pr_psargs);}' Note that this relies on the process arguments being cached via the struct proc, which means that it will not work for argvs longer than kern.ps_arg_cache_limit. However, the following rather non-portable script can be used to extract any argv at exec time: fbt::kern_execve:entry { printf("%s", memstr(args[1]->begin_argv, ' ', args[1]->begin_envv - args[1]->begin_argv)); } The debug.dtrace.memstr_max sysctl limits the maximum argument size to memstr(). Thanks to Brendan Gregg for helpful comments on freebsd-dtrace. Tested by: Fabian Keil (earlier version) MFC after: 2 weeks
* Add fasttrap for PowerPC. This is the last piece of the dtrace/ppc puzzle.jhibbits2013-10-151-4/+85
| | | | | | | It's incomplete, it doesn't contain full instruction emulation, but it should be sufficient for most cases. MFC after: 1 month
* Load the dtraceall module if /dev/dtrace/dtrace doesn't exist.rpaulo2013-08-101-1/+11
| | | | MFC after: 3 days
* DTrace: re-apply r249426 now that the underlying issues have been solved.pfg2013-07-283-5/+9
| | | | | | | | | | | | | | | | | | | | Merge change from illumos: 3519 DTrace fails to resolve const types from fbt 3520 dtrace internal error -- token type 316 is not a valid D compilation token 3521 clean up dtrace unit tests Illumos Revision: e98f46c Reference: https://www.illumos.org/issues/3519 https://www.illumos.org/issues/3520 https://www.illumos.org/issues/3521 Tested by: Fabian Keil Obtained from: Illumos MFC after: 1 month
* DTrace: re-merge remainder of r249367 (original from Illumos).pfg2013-07-289-124/+298
| | | | | | | | | | | | | | | | | | | | | | | Bring back some important fixes from Illumos: 3022 DTrace: keys should not affect the sort order when sorting by value 3023 it should be possible to dereference dynamic variables 3024 D integer narrowing needs some work We particularly avoid the LD_NOLAZYLOAD changes that Illumos made as those don't apply to FreeBSD and were causing problems in interactive mode. Illumos Revision: 13758:23432da34147 Reference: https://www.illumos.org/issues/3022 https://www.illumos.org/issues/3023 https://www.illumos.org/issues/3024 MFC after: 1 month Tested by: markj
* Remove a block of code that was not intended to be part of the previousmarkj2013-05-201-7/+0
| | | | | | revision. X-MFC with: r250812
* Re-introduce another part of r249367. This commit fixes a register leak inmarkj2013-05-196-97/+157
| | | | | | | | | | | | dt_cg_ptrsize() and generally cleans up some of the error handling around register allocation. This change corresponds to part of illumos-gate commit e5803b76927480: 3025 register leak in D code generation Reviewed by: pfg Obtained from: illumos MFC after: 1 month
* Bring back part of r249367 by adding DTrace's temporal option, which allowsmarkj2013-05-126-152/+619
| | | | | | | | | | | | | | | | | | | | | | | | users to guarantee that the output of DTrace scripts will be time-ordered. This option is enabled by adding the line #pragma D option temporal to the beginning of a script, or by adding '-x temporal' to the arguments of dtrace(1). This change fixes a bug in the original port of the temporal option. This bug was causing some assertions to fail, so they had been disabled; in this revision the assertions are working properly and are enabled. The DTrace version number has been bumped from 1.9.0 to 1.9.1 to reflect the language change that's being introduced. This change corresponds to part of illumos-gate commit e5803b76927480: 3021 option for time-ordered output from dtrace(1M) Reviewed by: pfg Obtained from: illumos MFC after: 1 month
* revert r248644 because of the regression for usdt probesavg2013-04-251-1/+1
| | | | | | | | | | | | | | | USDT probes are advertised to kernel by initialization code with atrribute((constructor))). It seems that on Solaris the .init-ish code of the main object is executed before RD_PREINIT point is hit. On FreeBSD that is not the case. And because on FreeBSD there is no other well-defined point between RD_PREINIT and main() we have to parse a DTrace script when main is hit, for time being. A footnote: currently we actually post RD_POSTINIT event, but that's a bug because the event is triggered by hitting r_debug_state which happens before any init code is executed. Reported by: markj
* DTrace: Revert r249426pfg2013-04-173-9/+5
| | | | | | This change actually depends on r249367 which had to be reverted Pointy Hat: pfg
* DTrace: Revert r249367pfg2013-04-1719-1138/+387
| | | | | | | | | | | | | | | | | | | | | | 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
* DTrace: print() should try to resolve function pointerspfg2013-04-161-4/+47
| | | | | | | | | | | | | | | | Merge changes from illumos: 3675 DTrace print() should try to resolve function pointers 3676 dt_print_enum hardcodes a value of zero Illumos Revision: b1fa6326238973aeaf12c34fcda75985b6c06be1 Reference: https://www.illumos.org/issues/3675 https://www.illumos.org/issues/3676 Obtained from: Illumos MFC after: 1 month
* Dtrace: resolve const types from fbt and other fixes.pfg2013-04-123-5/+9
| | | | | | | | | | | | | | | | | | | | Merge change from illumos: 3519 DTrace fails to resolve const types from fbt 3520 dtrace internal error -- token type 316 is not a valid D compilation token 3521 clean up dtrace unit tests Illumos Revision: e98f46c Reference: https://www.illumos.org/issues/3519 https://www.illumos.org/issues/3520 https://www.illumos.org/issues/3521 Tested by: Fabian Keil Obtained from: Illumos MFC after: 1 month
* DTrace: option for time-ordered outputpfg2013-04-1119-387/+1138
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Merge changes from illumos: 3021 option for time-ordered output from dtrace(1M) 3022 DTrace: keys should not affect the sort order when sorting by value 3023 it should be possible to dereference dynamic variables 3024 D integer narrowing needs some work 3025 register leak in D code generation 3026 libdtrace should set LD_NOLAZYLOAD=1 to help the pid provider This brings yet another feature implemented in upstream DTrace. A complete description is available here: http://dtrace.org/blogs/ahl/2012/07/28/my-new-dtrace-favorite/ This change bumps the DT_VERS_* number to 1.9.1 in accordance to what is done in illumos. This change was somewhat complicated because upstream is mixed many changes in an individual commit and some of the tests don't really apply to us. There are also appear to be differences in timestamping with Solaris so we had to workaround some assertions making sure no regression happened. Special thanks to Fabian Keil for changes and testing. Illumos Revisions: 13758:23432da34147 Reference: https://www.illumos.org/issues/3021 https://www.illumos.org/issues/3022 https://www.illumos.org/issues/3023 https://www.illumos.org/issues/3024 https://www.illumos.org/issues/3025 https://www.illumos.org/issues/1694 Tested by: Fabian Keil Obtained from: Illumos MFC after: 1 months
* Commit a patch that fixes a problem in the #pragma statement when searchinggnn2013-03-281-3/+27
| | | | | | | | | for and loading dependent modules. This addresses a bug seen with io.d where it was being doubly included. PR: 171678 Submitted by: Mark Johnston MFC after: 2 weeks
* Dtrace: Add SUN MDB-like type-aware print() action.pfg2013-03-2510-70/+889
| | | | | | | | | | | | | | | | | | | | | | | | | | | Merge change from illumos: 1694 Add type-aware print() action This is a very nice feature implemented in upstream Dtrace. A complete description is available here: http://dtrace.org/blogs/eschrock/2011/10/26/your-mdb-fell-into-my-dtrace/ This change bumps the DT_VERS_* number to 1.9.0 in accordance to what is done in illumos. While here also include some minor cleanups to ease further merging and appease clang with a fix by Fabian Keil. Illumos Revisions: 13501:c3a7090dbc16 13483:f413e6c5d297 Reference: https://www.illumos.org/issues/1560 https://www.illumos.org/issues/1694 Tested by: Fabian Keil Obtained from: Illumos MFC after: 1 month
* Dtrace: add toupper()/tolower() and enhancements to lltostr().pfg2013-03-251-3/+11
| | | | | | | | | | | | | | | | | | | | | | | | | Merge changes from illumos: 1451 DTrace needs toupper()/tolower() subroutines 1457 lltostr() D subroutine should take an optional base This change bumps the DT_VERS_* number to 1.8.1 in accordance to what is done in illumos. The test suite we currently include is outdated and doesnt support some updates in tst.subr.d which had to be left out for now. Illumos Revisions: r13458 5e394d8db762 r13459 c3454574dd1a Reference: https://www.illumos.org/issues/1451 https://www.illumos.org/issues/1457 Tested by: Fabian Keil Obtained from: Illumos MFC after: 1 month
* Dtrace: add optional size argument to tracemem().pfg2013-03-244-10/+62
| | | | | | | | | | | | | | | | | | | | | | | | | Merge change from illumos: 1455 DTrace tracemem() should take an optional size argument Our local enhancements to dt_print_bytes were equivalent to those in illumos but we made it match the illumos version to ease further code merges. For now leave out tst.smallsize.d and tst.smallsize.d.out since those don't seem to work cleanly on FreeBSD. This change bumps the DT_VERS_* number to 1.7.1 in accordance to what is done in illumos. Illumos Revision: 13457:571b0355c2e3 Reference: https://www.illumos.org/issues/1455 Tested by: Fabian Keil Obtained from: Illumos MFC after: 1 month
* dtrace: ensure that we can always catch a process (e.g. when -c is used)avg2013-03-231-1/+1
| | | | | | | | | It is not guaranteed that a program has a symbol table entry for main and thus that it would be possible to set a breakpoint on it. Reviewed by: rpaulo Discussed with: rpaulo MFC after: 13 days
* Make sure that each va_start has one and only one matching va_end,kevlo2012-09-281-0/+1
| | | | especially in error cases.
* When we return with an error we cannot unlock the mutex, becausegnn2012-08-011-1/+2
| | | | | | | it's been freed. Protect against that, hopefully unlikely, case. Reviewed by: rpaulo MFC after: 2 weeks
* Dtrace: improve handling of library paths.pfg2012-07-172-22/+102
| | | | | | | | | | | | | | | | | | | | | Merge changes from illumos 906 dtrace depends_on pragma should search all library paths, not just the current one 949 dtrace should only include the first instance of a library found on its library path Illumos Revisions: 13353:936a1e45726c 13354:2b2c36a81512 Reference: https://www.illumos.org/issues/906 https://www.illumos.org/issues/949 Tested by: Fabian Keil Obtained from: Illumos MFC after: 3 weeks
* Use libc's strndup() instead of Dtrace's reimplementation.pfg2012-07-152-24/+3
| | | | | | | | Corresponds partially to OpenSolaris change: PSARC 2010/299 GNU/Linux/BSD compatibility functions 6901783 strndup would be nice MFC after: 2 weeks
* Merge illumos commit 13455:7205f7794835pfg2012-07-141-1/+8
| | | | | | | | | | 1458 D compiler fails to generate error on sizeof() an undefined struct Reference: https://www.illumos.org/issues/1458 Tested by: Fabian Keil MFC after: 3 weeks
* Fix clang warning, introduced in the recent dtrace import.dim2012-07-031-1/+1
| | | | MFC after: 3 days
* Safer fix for building with Clang.pfg2012-06-281-1/+1
| | | | | | | error: format specifies type 'long long' but the argument has type 'int64_t' (aka 'long') Reported by: Ed Maste
* Fix build with Clang.pfg2012-06-281-1/+1
| | | | | | | error: format specifies type 'long long' but the argument has type 'int64_t' (aka 'long') Reported by: Ed Maste
* Bring llquantize support into Dtrace.pfg2012-06-278-5/+398
| | | | | | | | | | | | | | | | | | Bryan Cantrill implemented the equivalent of semi-log graph paper for Dtrace so llquantize will use one logarithmic and one linear scale. Special thanks to Mark Peek for providing fix to an assertion and to Fabian Keill for testing the port. Illumos Revision: 13355:15b74a2a9a9d Reference: https://www.illumos/issues/905 Obtained from: Illumos Tested by: Fabian Keill, mp MFC after: 4 days
* Implement the D "cpu" variable, which returns curcpu. I have chosen notrstone2012-04-261-0/+6
| | | | | | | | | | | to follow the example of OpenSolaris and its descendants, which implemented cpu as an inline that took a value out of curthread. At certain points in the FreeBSD scheduler curthread->td_oncpu will no longer be valid (in particukar, just before the thread gets descheduled) so instead I have implemented this as its own built-in variable. Sponsored by: Sandvine Inc. MFC after: 1 week
* Change SIGUSR1 to SIGTHR to properly wake up a process that is beinggnn2012-04-131-1/+1
| | | | | | | traced. The use of SIGUSR1 caused traced processes (those attached to with dtrace -p) to exit when dtrace exited. MFC in: 1 week
* In cddl/contrib/opensolaris/lib/libdtrace/common/dt_handle.c, somedim2011-12-161-2/+4
| | | | | | | | uint64_t values are snprintf'd using %llx. On amd64, uint64_t is typedef'd as unsigned long, so cast the values to u_longlong_t, as is done similarly in the rest of the file. MFC after: 1 week
OpenPOWER on IntegriCloud