Created
January 7, 2022 14:53
-
-
Save bcantrill/849a8b358c345be4a3c78a4119922425 to your computer and use it in GitHub Desktop.
Script that prompted https://twitter.com/bcantrill/status/1479196154990452737
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#pragma D option nspec=100 | |
#pragma D option flowindent | |
pid$target::libusb_submit_transfer:entry | |
{ | |
self->spec = speculation(); | |
} | |
pid$target:*libusb*::entry, | |
pid$target:*libusb*::return | |
/self->spec/ | |
{ | |
speculate(self->spec); | |
printf("%x %x", arg0, arg1); | |
} | |
pid$target::libusb_submit_transfer:return | |
/self->spec && arg1 == 0/ | |
{ | |
discard(self->spec); | |
self->spec = 0; | |
} | |
pid$target::libusb_submit_transfer:return | |
/self->spec/ | |
{ | |
commit(self->spec); | |
self->spec = 0; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
dtrace: pid 100867 has exited | |
CPU FUNCTION | |
0 -> libusb_submit_transfer 2ebdef8 2ebac50 | |
0 -> usbi_log 0 4 | |
0 -> log_v 0 4 | |
0 -> usbi_get_context 0 4 | |
0 <- usbi_get_context 1d 2e83e10 | |
0 <- log_v 354 0 | |
0 <- usbi_log b4 0 | |
0 -> add_to_flying_list 2ebde90 0 | |
0 -> calculate_timeout 2ebde90 0 | |
0 <- calculate_timeout ef 144009dd | |
0 -> usbi_using_timer 2e83e10 2e83ea8 | |
0 -> usbi_timer_valid 2e83e24 2e83ea8 | |
0 <- usbi_timer_valid 17 1 | |
0 <- usbi_using_timer 1d 1 | |
0 -> usbi_log 0 4 | |
0 -> log_v 0 4 | |
0 -> usbi_get_context 0 4 | |
0 <- usbi_get_context 1d 2e83e10 | |
0 <- log_v 354 0 | |
0 <- usbi_log b4 0 | |
0 -> usbi_arm_timer 2e83e24 2ebdeb8 | |
0 <- usbi_arm_timer 95 0 | |
0 <- add_to_flying_list 23d 0 | |
0 -> sunos_submit_transfer 2ebde90 0 | |
0 -> sunos_check_device_and_status_open 2ebac50 0 | |
0 -> usbi_log 0 4 | |
0 -> log_v 0 4 | |
0 -> usbi_get_context 0 4 | |
0 <- usbi_get_context 1d 2e83e10 | |
0 <- log_v 354 0 | |
0 <- usbi_log b4 0 | |
0 -> usbi_get_device_handle_priv 2ebac50 4 | |
0 <- usbi_get_device_handle_priv 11 2ebac90 | |
0 -> sunos_usb_ep_index 0 4 | |
0 <- sunos_usb_ep_index 1f 0 | |
0 -> sunos_find_interface 2ebac50 0 | |
0 -> libusb_get_active_config_descriptor 2e805c0 fffffc7fffdf84b0 | |
0 -> get_active_config_descriptor 2e805c0 fffffc7fffdf8466 | |
0 -> sunos_get_active_config_descriptor 2e805c0 fffffc7fffdf8466 | |
0 -> usbi_get_device_priv 2e805c0 fffffc7fffdf8466 | |
0 <- usbi_get_device_priv 11 2e80628 | |
0 -> usbi_log 0 4 | |
0 -> log_v 0 4 | |
0 -> usbi_get_context 0 4 | |
0 <- usbi_get_context 1d 2e83e10 | |
0 <- log_v 354 0 | |
0 <- usbi_log b4 0 | |
0 <- sunos_get_active_config_descriptor 1fc 9 | |
0 <- get_active_config_descriptor ca 9 | |
0 -> libusb_cpu_to_le16 65 4 | |
0 <- libusb_cpu_to_le16 21 65 | |
0 -> get_active_config_descriptor 2e805c0 2ebce50 | |
0 -> sunos_get_active_config_descriptor 2e805c0 2ebce50 | |
0 -> usbi_get_device_priv 2e805c0 2ebce50 | |
0 <- usbi_get_device_priv 11 2e80628 | |
0 -> usbi_log 0 4 | |
0 -> log_v 0 4 | |
0 -> usbi_get_context 0 4 | |
0 <- usbi_get_context 1d 2e83e10 | |
0 <- log_v 354 0 | |
0 <- usbi_log b4 0 | |
0 <- sunos_get_active_config_descriptor 1fc 65 | |
0 <- get_active_config_descriptor ca 65 | |
0 -> raw_desc_to_config 2e83e10 2ebce50 | |
0 -> parse_configuration 2e83e10 2e7ef90 | |
0 -> parse_descriptor 2ebce50 fffffc7fef2591cb | |
0 <- parse_descriptor 16e 0 | |
0 -> parse_interface 2e83e10 2ea2990 | |
0 -> parse_descriptor 2ebce59 fffffc7fef2590e8 | |
0 <- parse_descriptor 16e 0 | |
0 -> parse_endpoint 2e83e10 2ea2670 | |
0 -> parse_descriptor 2ebce62 fffffc7fef259086 | |
0 <- parse_descriptor 16e 0 | |
0 <- parse_endpoint 350 7 | |
0 -> parse_endpoint 2e83e10 2ea2690 | |
0 -> parse_descriptor 2ebce69 fffffc7fef259086 | |
0 <- parse_descriptor 16e 0 | |
0 <- parse_endpoint 350 7 | |
0 <- parse_interface 4d4 17 | |
0 -> parse_interface 2e83e10 2ea29a0 | |
0 -> parse_descriptor 2ebce70 fffffc7fef2590e8 | |
0 <- parse_descriptor 16e 0 | |
0 -> parse_endpoint 2e83e10 2ea29e0 | |
0 -> parse_descriptor 2ebce79 fffffc7fef259086 | |
0 <- parse_descriptor 16e 0 | |
0 <- parse_endpoint 350 7 | |
0 -> parse_endpoint 2e83e10 2ea2a00 | |
0 -> parse_descriptor 2ebce80 fffffc7fef259086 | |
0 <- parse_descriptor 16e 0 | |
0 <- parse_endpoint 350 7 | |
0 <- parse_interface 4d4 17 | |
0 -> parse_interface 2e83e10 2ea29b0 | |
0 -> parse_descriptor 2ebce87 fffffc7fef2590e8 | |
0 <- parse_descriptor 16e 0 | |
0 -> parse_endpoint 2e83e10 2ea2a30 | |
0 -> parse_descriptor 2ebce90 fffffc7fef259086 | |
0 <- parse_descriptor 16e 0 | |
0 <- parse_endpoint 350 7 | |
0 -> parse_endpoint 2e83e10 2ea2a50 | |
0 -> parse_descriptor 2ebce97 fffffc7fef259086 | |
0 <- parse_descriptor 16e 0 | |
0 <- parse_endpoint 350 7 | |
0 <- parse_interface 4d4 17 | |
0 -> parse_interface 2e83e10 2ea29c0 | |
0 -> parse_descriptor 2ebce9e fffffc7fef2590e8 | |
0 <- parse_descriptor 16e 0 | |
0 -> parse_endpoint 2e83e10 2ea2a80 | |
0 -> parse_descriptor 2ebcea7 fffffc7fef259086 | |
0 <- parse_descriptor 16e 0 | |
0 <- parse_endpoint 350 7 | |
0 -> parse_endpoint 2e83e10 2ea2aa0 | |
0 -> parse_descriptor 2ebceae fffffc7fef259086 | |
0 <- parse_descriptor 16e 0 | |
0 <- parse_endpoint 350 7 | |
0 <- parse_interface 4d4 17 | |
0 <- parse_configuration 443 0 | |
0 <- raw_desc_to_config d7 0 | |
0 <- libusb_get_active_config_descriptor b4 0 | |
0 -> libusb_free_config_descriptor 2e7ef90 75 | |
0 -> clear_configuration 2e7ef90 75 | |
0 -> clear_interface 2ea2990 75 | |
0 -> clear_endpoint 2ea2670 75 | |
0 <- clear_endpoint 1e 0 | |
0 -> clear_endpoint 2ea2690 75 | |
0 <- clear_endpoint 1e 0 | |
0 <- clear_interface df 2ea2990 | |
0 -> clear_interface 2ea29a0 38 | |
0 -> clear_endpoint 2ea29e0 38 | |
0 <- clear_endpoint 1e 0 | |
0 -> clear_endpoint 2ea2a00 38 | |
0 <- clear_endpoint 1e 0 | |
0 <- clear_interface df 2ea29a0 | |
0 -> clear_interface 2ea29b0 38 | |
0 -> clear_endpoint 2ea2a30 38 | |
0 <- clear_endpoint 1e 0 | |
0 -> clear_endpoint 2ea2a50 38 | |
0 <- clear_endpoint 1e 0 | |
0 <- clear_interface df 2ea29b0 | |
0 -> clear_interface 2ea29c0 38 | |
0 -> clear_endpoint 2ea2a80 38 | |
0 <- clear_endpoint 1e 0 | |
0 -> clear_endpoint 2ea2aa0 38 | |
0 <- clear_endpoint 1e 0 | |
0 <- clear_interface df 2ea29c0 | |
0 <- clear_configuration 73 0 | |
0 <- libusb_free_config_descriptor 2f 2e7ef80 | |
0 <- sunos_find_interface 12f fffffffe | |
0 -> usbi_log 0 4 | |
0 -> log_v 0 4 | |
0 -> usbi_get_context 0 4 | |
0 <- usbi_get_context 1d 2e83e10 | |
0 <- log_v 354 0 | |
0 <- usbi_log b4 0 | |
0 <- sunos_check_device_and_status_open 643 d | |
0 -> _errno_to_libusb d 4 | |
0 -> usbi_log 0 4 | |
0 -> log_v 0 4 | |
0 -> usbi_get_context 0 4 | |
0 <- usbi_get_context 1d 2e83e10 | |
0 <- log_v 354 0 | |
0 <- usbi_log b4 0 | |
0 <- _errno_to_libusb 9f fffffffd | |
0 <- sunos_submit_transfer 1cc fffffffd | |
0 -> remove_from_flying_list 2ebde90 0 | |
0 -> arm_timer_for_next_timeout 2e83e10 0 | |
0 -> usbi_using_timer 2e83e10 0 | |
0 -> usbi_timer_valid 2e83e24 0 | |
0 <- usbi_timer_valid 17 1 | |
0 <- usbi_using_timer 1d 1 | |
0 -> usbi_log 0 4 | |
0 -> log_v 0 4 | |
0 -> usbi_get_context 0 4 | |
0 <- usbi_get_context 1d 2e83e10 | |
0 <- log_v 354 0 | |
0 <- usbi_log b4 0 | |
0 -> usbi_disarm_timer 2e83e24 4 | |
0 <- usbi_disarm_timer 8a 0 | |
0 <- arm_timer_for_next_timeout 11f 0 | |
0 <- remove_from_flying_list b5 0 | |
0 <- libusb_submit_transfer 18b fffffffd | |
1 -> libusb_submit_transfer 2ebdef8 2ebac50 | |
1 -> usbi_log 0 4 | |
1 -> log_v 0 4 | |
1 -> usbi_get_context 0 4 | |
1 <- usbi_get_context 1d 2e83e10 | |
1 <- log_v 354 0 | |
1 <- usbi_log b4 0 | |
1 -> add_to_flying_list 2ebde90 0 | |
1 -> calculate_timeout 2ebde90 0 | |
1 <- calculate_timeout ef 17b6a76d | |
1 -> usbi_using_timer 2e83c50 2e83ce8 | |
1 -> usbi_timer_valid 2e83c64 2e83ce8 | |
1 <- usbi_timer_valid 17 1 | |
1 <- usbi_using_timer 1d 1 | |
1 -> usbi_log 0 4 | |
1 -> log_v 0 4 | |
1 -> usbi_get_context 0 4 | |
1 <- usbi_get_context 1d 2e83e10 | |
1 <- log_v 354 0 | |
1 <- usbi_log b4 0 | |
1 -> usbi_arm_timer 2e83c64 2ebdeb8 | |
1 <- usbi_arm_timer 95 0 | |
1 <- add_to_flying_list 23d 0 | |
1 -> sunos_submit_transfer 2ebde90 0 | |
1 -> sunos_check_device_and_status_open 2ebac50 0 | |
1 -> usbi_log 0 4 | |
1 -> log_v 0 4 | |
1 -> usbi_get_context 0 4 | |
1 <- usbi_get_context 1d 2e83e10 | |
1 <- log_v 354 0 | |
1 <- usbi_log b4 0 | |
1 -> usbi_get_device_handle_priv 2ebac50 4 | |
1 <- usbi_get_device_handle_priv 11 2ebac90 | |
1 -> sunos_usb_ep_index 0 4 | |
1 <- sunos_usb_ep_index 1f 0 | |
1 -> sunos_find_interface 2ebac50 0 | |
1 -> libusb_get_active_config_descriptor 2e80480 fffffc7fffdf8520 | |
1 -> get_active_config_descriptor 2e80480 fffffc7fffdf84d6 | |
1 -> sunos_get_active_config_descriptor 2e80480 fffffc7fffdf84d6 | |
1 -> usbi_get_device_priv 2e80480 fffffc7fffdf84d6 | |
1 <- usbi_get_device_priv 11 2e804e8 | |
1 -> usbi_log 0 4 | |
1 -> log_v 0 4 | |
1 -> usbi_get_context 0 4 | |
1 <- usbi_get_context 1d 2e83e10 | |
1 <- log_v 354 0 | |
1 <- usbi_log b4 0 | |
1 <- sunos_get_active_config_descriptor 1fc 9 | |
1 <- get_active_config_descriptor ca 9 | |
1 -> libusb_cpu_to_le16 65 4 | |
1 <- libusb_cpu_to_le16 21 65 | |
1 -> get_active_config_descriptor 2e80480 2ebce50 | |
1 -> sunos_get_active_config_descriptor 2e80480 2ebce50 | |
1 -> usbi_get_device_priv 2e80480 2ebce50 | |
1 <- usbi_get_device_priv 11 2e804e8 | |
1 -> usbi_log 0 4 | |
1 -> log_v 0 4 | |
1 -> usbi_get_context 0 4 | |
1 <- usbi_get_context 1d 2e83e10 | |
1 <- log_v 354 0 | |
1 <- usbi_log b4 0 | |
1 <- sunos_get_active_config_descriptor 1fc 65 | |
1 <- get_active_config_descriptor ca 65 | |
1 -> raw_desc_to_config 2e83c50 2ebce50 | |
1 -> parse_configuration 2e83c50 2e7e9d0 | |
1 -> parse_descriptor 2ebce50 fffffc7fef2591cb | |
1 <- parse_descriptor 16e 0 | |
1 -> parse_interface 2e83c50 2e74160 | |
1 -> parse_descriptor 2ebce59 fffffc7fef2590e8 | |
1 <- parse_descriptor 16e 0 | |
1 -> parse_endpoint 2e83c50 2ea2ee0 | |
1 -> parse_descriptor 2ebce62 fffffc7fef259086 | |
1 <- parse_descriptor 16e 0 | |
1 <- parse_endpoint 350 7 | |
1 -> parse_endpoint 2e83c50 2ea2f00 | |
1 -> parse_descriptor 2ebce69 fffffc7fef259086 | |
1 <- parse_descriptor 16e 0 | |
1 <- parse_endpoint 350 7 | |
1 <- parse_interface 4d4 17 | |
1 -> parse_interface 2e83c50 2e74170 | |
1 -> parse_descriptor 2ebce70 fffffc7fef2590e8 | |
1 <- parse_descriptor 16e 0 | |
1 -> parse_endpoint 2e83c50 2e741b0 | |
1 -> parse_descriptor 2ebce79 fffffc7fef259086 | |
1 <- parse_descriptor 16e 0 | |
1 <- parse_endpoint 350 7 | |
1 -> parse_endpoint 2e83c50 2e741d0 | |
1 -> parse_descriptor 2ebce80 fffffc7fef259086 | |
1 <- parse_descriptor 16e 0 | |
1 <- parse_endpoint 350 7 | |
1 <- parse_interface 4d4 17 | |
1 -> parse_interface 2e83c50 2e74180 | |
1 -> parse_descriptor 2ebce87 fffffc7fef2590e8 | |
1 <- parse_descriptor 16e 0 | |
1 -> parse_endpoint 2e83c50 2e74200 | |
1 -> parse_descriptor 2ebce90 fffffc7fef259086 | |
1 <- parse_descriptor 16e 0 | |
1 <- parse_endpoint 350 7 | |
1 -> parse_endpoint 2e83c50 2e74220 | |
1 -> parse_descriptor 2ebce97 fffffc7fef259086 | |
1 <- parse_descriptor 16e 0 | |
1 <- parse_endpoint 350 7 | |
1 <- parse_interface 4d4 17 | |
1 -> parse_interface 2e83c50 2e74190 | |
1 -> parse_descriptor 2ebce9e fffffc7fef2590e8 | |
1 <- parse_descriptor 16e 0 | |
1 -> parse_endpoint 2e83c50 2e74250 | |
1 -> parse_descriptor 2ebcea7 fffffc7fef259086 | |
1 <- parse_descriptor 16e 0 | |
1 <- parse_endpoint 350 7 | |
1 -> parse_endpoint 2e83c50 2e74270 | |
1 -> parse_descriptor 2ebceae fffffc7fef259086 | |
1 <- parse_descriptor 16e 0 | |
1 <- parse_endpoint 350 7 | |
1 <- parse_interface 4d4 17 | |
1 <- parse_configuration 443 0 | |
1 <- raw_desc_to_config d7 0 | |
1 <- libusb_get_active_config_descriptor b4 0 | |
1 -> libusb_free_config_descriptor 2e7e9d0 75 | |
1 -> clear_configuration 2e7e9d0 75 | |
1 -> clear_interface 2e74160 75 | |
1 -> clear_endpoint 2ea2ee0 75 | |
1 <- clear_endpoint 1e 0 | |
1 -> clear_endpoint 2ea2f00 75 | |
1 <- clear_endpoint 1e 0 | |
1 <- clear_interface df 2e74160 | |
1 -> clear_interface 2e74170 38 | |
1 -> clear_endpoint 2e741b0 38 | |
1 <- clear_endpoint 1e 0 | |
1 -> clear_endpoint 2e741d0 38 | |
1 <- clear_endpoint 1e 0 | |
1 <- clear_interface df 2e74170 | |
1 -> clear_interface 2e74180 38 | |
1 -> clear_endpoint 2e74200 38 | |
1 <- clear_endpoint 1e 0 | |
1 -> clear_endpoint 2e74220 38 | |
1 <- clear_endpoint 1e 0 | |
1 <- clear_interface df 2e74180 | |
1 -> clear_interface 2e74190 38 | |
1 -> clear_endpoint 2e74250 38 | |
1 <- clear_endpoint 1e 0 | |
1 -> clear_endpoint 2e74270 38 | |
1 <- clear_endpoint 1e 0 | |
1 <- clear_interface df 2e74190 | |
1 <- clear_configuration 73 0 | |
1 <- libusb_free_config_descriptor 2f 2e7e9c0 | |
1 <- sunos_find_interface 12f fffffffe | |
1 -> usbi_log 0 4 | |
1 -> log_v 0 4 | |
1 -> usbi_get_context 0 4 | |
1 <- usbi_get_context 1d 2e83e10 | |
1 <- log_v 354 0 | |
1 <- usbi_log b4 0 | |
1 <- sunos_check_device_and_status_open 643 d | |
1 -> _errno_to_libusb d 4 | |
1 -> usbi_log 0 4 | |
1 -> log_v 0 4 | |
1 -> usbi_get_context 0 4 | |
1 <- usbi_get_context 1d 2e83e10 | |
1 <- log_v 354 0 | |
1 <- usbi_log b4 0 | |
1 <- _errno_to_libusb 9f fffffffd | |
1 <- sunos_submit_transfer 1cc fffffffd | |
1 -> remove_from_flying_list 2ebde90 0 | |
1 -> arm_timer_for_next_timeout 2e83c50 0 | |
1 -> usbi_using_timer 2e83c50 0 | |
1 -> usbi_timer_valid 2e83c64 0 | |
1 <- usbi_timer_valid 17 1 | |
1 <- usbi_using_timer 1d 1 | |
1 -> usbi_log 0 4 | |
1 -> log_v 0 4 | |
1 -> usbi_get_context 0 4 | |
1 <- usbi_get_context 1d 2e83e10 | |
1 <- log_v 354 0 | |
1 <- usbi_log b4 0 | |
1 -> usbi_disarm_timer 2e83c64 4 | |
1 <- usbi_disarm_timer 8a 0 | |
1 <- arm_timer_for_next_timeout 11f 0 | |
1 <- remove_from_flying_list b5 0 | |
1 <- libusb_submit_transfer 18b fffffffd |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment