Skip to content
trace event port activity
Perl
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
LICENSE
README.md
portsnoop

README.md

portsnoop: trace event port activity

portsnoop is a DTrace script to trace event port activity on illumos-based systems. It traces:

* port\_get or port\_getn when either one fails or returns at least 1 event
* the first 30 events returned by each port\_get or port\_getn invocation
* all calls to port\_associate and port\_dissociate
* calls to read, write, accept, or close between a returned event and a call
  to port\_associate for the same file descriptor

There are probably useful cases that are missing. Contributions welcome.

Here's an example of watching Node.js:

TIME        TID  SYSCALL             FD  DETAILS                    ERROR      
 12.208422    1  port_associate       6  0x01
 12.242194    1  port_associate       9  0x01
 12.255736    1  port_getn            -  1 events
 12.274277    1   PORT_SOURCE_FD      9  fdevents 0x01
 12.328980    1      read             9  = 385                    
 12.271295    1  port_associate       9  0x01
 12.288007    1  port_getn            -  1 events
 12.298038    1   PORT_SOURCE_FD      4  fdevents 0x01
 12.328153    1      read             4  = 1                      
 12.629188    1  port_associate       4  0x01
 12.645012    1  port_getn            -  1 events
 12.654589    1   PORT_SOURCE_FD      4  fdevents 0x01
 12.682737    1      read             4  = 1                      
 12.416725    1  port_associate       4  0x01
 12.432715    1  port_getn            -  1 events
 12.442648    1   PORT_SOURCE_FD      4  fdevents 0x01
 12.471463    1      read             4  = 1                      
 12.508922    1  port_associate       4  0x01
 12.521278    1  port_getn            -  1 events
 12.528865    1   PORT_SOURCE_FD      4  fdevents 0x01
 12.553993    1      read             4  = 1                      
 12.574697    1  port_associate       4  0x01
 12.822090    1  port_getn            -  1 events
 12.831173    1   PORT_SOURCE_FD      6  fdevents 0x01
 12.869254    1      accept           6  = 11                     
 12.088036    1      accept           6  = -1                       (errno = 11)
 12.125804    1  port_associate       6  0x01
 12.149611    1  port_associate      11  0x01
 13.033215    1  port_getn            -  1 events
 13.043168    1   PORT_SOURCE_FD      6  fdevents 0x01
 13.078822    1      accept           6  = 12                     
 13.145472    1      accept           6  = 23                     
 13.194127    1      accept           6  = -1                       (errno = 11)
 13.225361    1  port_associate       6  0x01
 13.248414    1  port_associate      12  0x01
 13.269476    1  port_associate      23  0x01
 13.310552    1  port_getn            -  1 events
 13.320322    1   PORT_SOURCE_FD      6  fdevents 0x01
 13.353921    1      accept           6  = 30                     
 13.431817    1      accept           6  = 37                     
 13.478750    1      accept           6  = -1                       (errno = 11)
 13.510167    1  port_associate       6  0x01
 13.533580    1  port_associate      30  0x01
 13.554498    1  port_associate      37  0x01
Something went wrong with that request. Please try again.