Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Debug and ReleaseSafe modes crash when accessing usb

Offen
#2 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
38/100
Issue-Typ
Bug
Klarheit
Muss geklärt werden
Aktivitätsstatus
Aktiv
Tech-Stack
zig
Bereich
cli, embedded-iot

Rechercherichtung

Beginne damit, den Commit 7a81a047efe8b82c30396960de51eac9cdf6f0dc auszuchecken und den Absturz mit zig build run -- info zu reproduzieren, während der Raspberry Pi Pico über USB verbunden ist. Vergleiche Debug- und ReleaseSafe-Builds und halte den Fehlerpunkt fest; fertig ist die Aufgabe, wenn der USB-Zugriff in beiden Modi ohne Absturz abgeschlossen wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

when accessing a rpi pico through usb, the tool built with debug info crashes.

tested with git commit 7a81a047efe8b82c30396960de51eac9cdf6f0dc

example command log:

tobi@simmet-tuxedo:~/repos/zig/picotool$ zig build run -- info
anyzig: .minimum_zig_version '0.16.0' pulled from '/home/tobi/repos/zig/picotool/build.zig.zon'
anyzig: appdata '/home/tobi/.local/share/anyzig'
anyzig: zig '0.16.0' already exists at '/home/tobi/.cache/zig/p/N-V-__8AAFFSVRWqblwBIcA-Yqv-u7sbjsJoww8K0mWaHbmJ'
[timestamp] [threadID] facility level [function call] <message>
--------------------------------------------------------------------------------
[ 0.000040] [0001785d] libusb: debug [libusb_init] libusb v1.0.26.11724
[ 0.000139] [0001785d] libusb: debug [usbi_add_event_source] add fd 3 events 1
[ 0.000182] [0001785d] libusb: debug [get_kernel_version] reported kernel version is 6.17.0-124040-tuxedo
[ 0.000229] [0001785d] libusb: debug [op_init] found usbfs at /dev/bus/usb
[ 0.000236] [0001785d] libusb: debug [op_init] max iso packet length is (likely) 98304 bytes
[ 0.000247] [0001785d] libusb: debug [op_init] sysfs is available
[ 0.000767] [0001785d] libusb: debug [linux_get_device_address] getting address for device: usb5 detached: 0
[ 0.000777] [0001785d] libusb: debug [linux_get_device_address] scan usb5
[ 0.000783] [0001785e] libusb: debug [linux_netlink_event_thread_main] netlink event thread entering
[ 0.000851] [0001785d] libusb: debug [linux_get_device_address] bus=5 dev=1
[ 0.000859] [0001785d] libusb: debug [linux_enumerate_device] busnum 5 devaddr 1 session_id 1281
[ 0.000865] [0001785d] libusb: debug [linux_enumerate_device] allocating new device for 5/1 (session 1281)
[ 0.000933] [0001785d] libusb: debug [linux_get_device_address] getting address for device: usb3 detached: 0
[ 0.000941] [0001785d] libusb: debug [linux_get_device_address] scan usb3
[ 0.000997] [0001785d] libusb: debug [linux_get_device_address] bus=3 dev=1
[ 0.001003] [0001785d] libusb: debug [linux_enumerate_device] busnum 3 devaddr 1 session_id 769
[ 0.001009] [0001785d] libusb: debug [linux_enumerate_device] allocating new device for 3/1 (session 769)
[ 0.001079] [0001785d] libusb: debug [linux_get_device_address] getting address for device: usb1 detached: 0
[ 0.001086] [0001785d] libusb: debug [linux_get_device_address] scan usb1
[ 0.001147] [0001785d] libusb: debug [linux_get_device_address] bus=1 dev=1
[ 0.001154] [0001785d] libusb: debug [linux_enumerate_device] busnum 1 devaddr 1 session_id 257
[ 0.001160] [0001785d] libusb: debug [linux_enumerate_device] allocating new device for 1/1 (session 257)
[ 0.001215] [0001785d] libusb: debug [linux_get_device_address] getting address for device: 1-5 detached: 0
[ 0.001222] [0001785d] libusb: debug [linux_get_device_address] scan 1-5
[ 0.001283] [0001785d] libusb: debug [linux_get_device_address] bus=1 dev=4
[ 0.001290] [0001785d] libusb: debug [linux_enumerate_device] busnum 1 devaddr 4 session_id 260
[ 0.001296] [0001785d] libusb: debug [linux_enumerate_device] allocating new device for 1/4 (session 260)
[ 0.001366] [0001785d] libusb: debug [linux_get_parent_info] dev 0x6a4c4f0 (1-5) has parent 0x6a4c210 (usb1) port 5
[ 0.001374] [0001785d] libusb: debug [linux_get_device_address] getting address for device: usb8 detached: 0
[ 0.001381] [0001785d] libusb: debug [linux_get_device_address] scan usb8
[ 0.001440] [0001785d] libusb: debug [linux_get_device_address] bus=8 dev=1
[ 0.001447] [0001785d] libusb: debug [linux_enumerate_device] busnum 8 devaddr 1 session_id 2049
[ 0.001455] [0001785d] libusb: debug [linux_enumerate_device] allocating new device for 8/1 (session 2049)
[ 0.001513] [0001785d] libusb: debug [linux_get_device_address] getting address for device: 1-3 detached: 0
[ 0.001520] [0001785d] libusb: debug [linux_get_device_address] scan 1-3
[ 0.001581] [0001785d] libusb: debug [linux_get_device_address] bus=1 dev=2
[ 0.001588] [0001785d] libusb: debug [linux_enumerate_device] busnum 1 devaddr 2 session_id 258
[ 0.001595] [0001785d] libusb: debug [linux_enumerate_device] allocating new device for 1/2 (session 258)
[ 0.001654] [0001785d] libusb: debug [linux_get_parent_info] dev 0x6a4ca20 (1-3) has parent 0x6a4c210 (usb1) port 3
[ 0.001662] [0001785d] libusb: debug [linux_get_device_address] getting address for device: usb6 detached: 0
[ 0.001669] [0001785d] libusb: debug [linux_get_device_address] scan usb6
[ 0.001728] [0001785d] libusb: debug [linux_get_device_address] bus=6 dev=1
[ 0.001735] [0001785d] libusb: debug [linux_enumerate_device] busnum 6 devaddr 1 session_id 1537
[ 0.001743] [0001785d] libusb: debug [linux_enumerate_device] allocating new device for 6/1 (session 1537)
[ 0.001800] [0001785d] libusb: debug [linux_get_device_address] getting address for device: usb4 detached: 0
[ 0.001807] [0001785d] libusb: debug [linux_get_device_address] scan usb4
[ 0.001867] [0001785d] libusb: debug [linux_get_device_address] bus=4 dev=1
[ 0.001874] [0001785d] libusb: debug [linux_enumerate_device] busnum 4 devaddr 1 session_id 1025
[ 0.001879] [0001785d] libusb: debug [linux_enumerate_device] allocating new device for 4/1 (session 1025)
[ 0.001936] [0001785d] libusb: debug [linux_get_device_address] getting address for device: usb2 detached: 0
[ 0.001943] [0001785d] libusb: debug [linux_get_device_address] scan usb2
[ 0.001999] [0001785d] libusb: debug [linux_get_device_address] bus=2 dev=1
[ 0.002006] [0001785d] libusb: debug [linux_enumerate_device] busnum 2 devaddr 1 session_id 513
[ 0.002013] [0001785d] libusb: debug [linux_enumerate_device] allocating new device for 2/1 (session 513)
[ 0.002134] [0001785d] libusb: debug [linux_get_device_address] getting address for device: 7-1 detached: 0
[ 0.002141] [0001785d] libusb: debug [linux_get_device_address] scan 7-1
[ 0.002205] [0001785d] libusb: debug [linux_get_device_address] bus=7 dev=2
[ 0.002212] [0001785d] libusb: debug [linux_enumerate_device] busnum 7 devaddr 2 session_id 1794
[ 0.002218] [0001785d] libusb: debug [linux_enumerate_device] allocating new device for 7/2 (session 1794)
[ 0.002278] [0001785d] libusb: debug [linux_get_parent_info] parent_dev usb7 not enumerated yet, enumerating now
[ 0.002285] [0001785d] libusb: debug [linux_get_device_address] getting address for device: usb7 detached: 0
[ 0.002291] [0001785d] libusb: debug [linux_get_device_address] scan usb7
[ 0.002348] [0001785d] libusb: debug [linux_get_device_address] bus=7 dev=1
[ 0.002355] [0001785d] libusb: debug [linux_enumerate_device] busnum 7 devaddr 1 session_id 1793
[ 0.002361] [0001785d] libusb: debug [linux_enumerate_device] allocating new device for 7/1 (session 1793)
[ 0.002419] [0001785d] libusb: debug [linux_get_parent_info] dev 0x6a4e5f0 (7-1) has parent 0x6a4f390 (usb7) port 1
[ 0.002427] [0001785d] libusb: debug [linux_get_device_address] getting address for device: 1-4 detached: 0
[ 0.002434] [0001785d] libusb: debug [linux_get_device_address] scan 1-4
[ 0.002493] [0001785d] libusb: debug [linux_get_device_address] bus=1 dev=3
[ 0.002499] [0001785d] libusb: debug [linux_enumerate_device] busnum 1 devaddr 3 session_id 259
[ 0.002506] [0001785d] libusb: debug [linux_enumerate_device] allocating new device for 1/3 (session 259)
[ 0.002565] [0001785d] libusb: debug [linux_get_parent_info] dev 0x6a4f530 (1-4) has parent 0x6a4c210 (usb1) port 4
[ 0.002572] [0001785d] libusb: debug [linux_get_device_address] getting address for device: 3-1 detached: 0
[ 0.002579] [0001785d] libusb: debug [linux_get_device_address] scan 3-1
[ 0.002636] [0001785d] libusb: debug [linux_get_device_address] bus=3 dev=2
[ 0.002643] [0001785d] libusb: debug [linux_enumerate_device] busnum 3 devaddr 2 session_id 770
[ 0.002652] [0001785d] libusb: debug [linux_enumerate_device] allocating new device for 3/2 (session 770)
[ 0.002722] [0001785d] libusb: debug [linux_get_parent_info] dev 0x6a4f5c0 (3-1) has parent 0x6a4bf60 (usb3) port 1
[ 0.002730] [0001785d] libusb: debug [linux_get_device_address] getting address for device: usb7 detached: 0
[ 0.002735] [0001785d] libusb: debug [linux_get_device_address] scan usb7
[ 0.002790] [0001785d] libusb: debug [linux_get_device_address] bus=7 dev=1
[ 0.002796] [0001785d] libusb: debug [linux_enumerate_device] busnum 7 devaddr 1 session_id 1793
[ 0.002803] [0001785d] libusb: debug [linux_enumerate_device] session_id 1793 already exists
[ 0.002810] [0001785d] libusb: debug [linux_get_device_address] getting address for device: 1-2 detached: 0
[ 0.002816] [0001785d] libusb: debug [linux_get_device_address] scan 1-2
[ 0.002876] [0001785d] libusb: debug [linux_get_device_address] bus=1 dev=16
[ 0.002883] [0001785d] libusb: debug [linux_enumerate_device] busnum 1 devaddr 16 session_id 272
[ 0.002890] [0001785d] libusb: debug [linux_enumerate_device] allocating new device for 1/16 (session 272)
[ 0.002957] [0001785d] libusb: debug [linux_get_parent_info] dev 0x6a57f20 (1-2) has parent 0x6a4c210 (usb1) port 2
[ 0.002972] [0001785d] libusb: warning [libusb_init] installing new context as implicit default
[ 0.002979] [0001785d] libusb: debug [libusb_get_device_list]  
[ 0.002995] [0001785d] libusb: debug [libusb_get_device_descriptor]  
[ 0.003103] [0001785d] libusb: debug [libusb_open] open 1.16
[ 0.003149] [0001785d] libusb: debug [usbi_add_event_source] add fd 8 events 4
[ 0.003159] [0001785d] libusb: debug [libusb_claim_interface] interface 1
[ 0.003203] [0001785d] libusb: debug [libusb_get_device_descriptor]  
[ 0.003213] [0001785d] libusb: debug [libusb_get_device_descriptor]  
[ 0.003222] [0001785d] libusb: debug [libusb_get_device_descriptor]  
[ 0.003230] [0001785d] libusb: debug [libusb_get_device_descriptor]  
[ 0.003238] [0001785d] libusb: debug [libusb_get_device_descriptor]  
[ 0.003246] [0001785d] libusb: debug [libusb_get_device_descriptor]  
[ 0.003254] [0001785d] libusb: debug [libusb_get_device_descriptor]  
[ 0.003261] [0001785d] libusb: debug [libusb_get_device_descriptor]  
[ 0.003268] [0001785d] libusb: debug [libusb_get_device_descriptor]  
[ 0.003276] [0001785d] libusb: debug [libusb_get_device_descriptor]  
[ 0.003283] [0001785d] libusb: debug [libusb_get_device_descriptor]  
[ 0.003290] [0001785d] libusb: debug [libusb_get_device_descriptor]  
[ 0.003297] [0001785d] libusb: debug [libusb_get_device_descriptor]  
[ 0.003322] [0001785d] libusb: debug [libusb_submit_transfer] transfer 0x6a4faf0
[ 0.003354] [0001785d] libusb: debug [libusb_get_next_timeout] next timeout in 0.999976s
[ 0.003362] [0001785d] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
[ 0.003369] [0001785d] libusb: debug [handle_events] event sources modified, reallocating event data
[ 0.003382] [0001785d] libusb: debug [usbi_wait_for_events] poll() 2 fds with timeout in 1000ms
[ 0.004902] [0001785d] libusb: debug [usbi_wait_for_events] poll() returned 1
[ 0.004930] [0001785d] libusb: debug [reap_for_handle] urb type=2 status=0 transferred=2
[ 0.004939] [0001785d] libusb: debug [handle_control_completion] handling completion status 0
[ 0.004950] [0001785d] libusb: debug [usbi_handle_transfer_completion] transfer 0x6a4faf0 has callback 0x14c5580
[ 0.004958] [0001785d] libusb: debug [sync_transfer_cb] actual_length=2
[ 0.004970] [0001785d] libusb: debug [libusb_free_transfer] transfer 0x6a4faf0
[ 0.004981] [0001785d] libusb: debug [libusb_submit_transfer] transfer 0x6a4fc20
[ 0.005005] [0001785d] libusb: debug [libusb_get_next_timeout] next timeout in 0.999983s
[ 0.005013] [0001785d] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
[ 0.005021] [0001785d] libusb: debug [usbi_wait_for_events] poll() 2 fds with timeout in 1000ms
[ 0.007863] [0001785d] libusb: debug [usbi_wait_for_events] poll() returned 1
[ 0.007891] [0001785d] libusb: debug [reap_for_handle] urb type=2 status=0 transferred=2
[ 0.007900] [0001785d] libusb: debug [handle_control_completion] handling completion status 0
[ 0.007911] [0001785d] libusb: debug [usbi_handle_transfer_completion] transfer 0x6a4fc20 has callback 0x14c5580
[ 0.007919] [0001785d] libusb: debug [sync_transfer_cb] actual_length=2
[ 0.007929] [0001785d] libusb: debug [libusb_free_transfer] transfer 0x6a4fc20
thread 96349 panic: null pointer passed as argument 2, which is declared to never be null
zig-pkg/libusb-0.0.1-P02YQpKOFwBAho1_og2xDIiJXpOLKjuLTwCnbr7Lp2Nw/libusb/sync.c:122:3: 0x14c490f in libusb_control_transfer (/home/tobi/repos/zig/picotool/zig-pkg/libusb-0.0.1-P02YQpKOFwBAho1_og2xDIiJXpOLKjuLTwCnbr7Lp2Nw/libusb/sync.c)
                memcpy(buffer + LIBUSB_CONTROL_SETUP_SIZE, data, wLength);
  ^
zig-pkg/N-V-__8AAMI8bAA1OLWzkwIWAXNxVMZV0urvzoSeC9tRCB4G/picoboot_connection/picoboot_connection.c:262:13: 0x15848bb in picoboot_reset (/home/tobi/repos/zig/picotool/zig-pkg/N-V-__8AAMI8bAA1OLWzkwIWAXNxVMZV0urvzoSeC9tRCB4G/picoboot_connection/picoboot_connection.c)
            libusb_control_transfer(usb_device, LIBUSB_REQUEST_TYPE_VENDOR | LIBUSB_RECIPIENT_INTERFACE,
            ^
zig-pkg/N-V-__8AAMI8bAA1OLWzkwIWAXNxVMZV0urvzoSeC9tRCB4G/picoboot_connection/picoboot_connection_cxx.cpp:80:28: 0x157de2f in operator() (/home/tobi/repos/zig/picotool/zig-pkg/N-V-__8AAMI8bAA1OLWzkwIWAXNxVMZV0urvzoSeC9tRCB4G/picoboot_connection/picoboot_connection_cxx.cpp)
    wrap_call([&] { return picoboot_reset(device); });
                           ^
zig-pkg/N-V-__8AAMI8bAA1OLWzkwIWAXNxVMZV0urvzoSeC9tRCB4G/picoboot_connection/picoboot_connection_cxx.cpp:56:14: 0x157b0e2 in wrap_call<(lambda at /home/tobi/repos/zig/picotool/zig-pkg/N-V-__8AAMI8bAA1OLWzkwIWAXNxVMZV0urvzoSeC9tRCB4G/picoboot_connection/picoboot_connection_cxx.cpp:80:15)> (/home/tobi/repos/zig/picotool/zig-pkg/N-V-__8AAMI8bAA1OLWzkwIWAXNxVMZV0urvzoSeC9tRCB4G/picoboot_connection/picoboot_connection_cxx.cpp)
    int rc = func();
             ^
zig-pkg/N-V-__8AAMI8bAA1OLWzkwIWAXNxVMZV0urvzoSeC9tRCB4G/picoboot_connection/picoboot_connection_cxx.cpp:80:5: 0x157b04e in reset (/home/tobi/repos/zig/picotool/zig-pkg/N-V-__8AAMI8bAA1OLWzkwIWAXNxVMZV0urvzoSeC9tRCB4G/picoboot_connection/picoboot_connection_cxx.cpp)
    wrap_call([&] { return picoboot_reset(device); });
    ^
zig-pkg/N-V-__8AAMI8bAA1OLWzkwIWAXNxVMZV0urvzoSeC9tRCB4G/picoboot_connection/picoboot_connection_cxx.h:32:13: 0x12b26f2 in connection (/home/tobi/repos/zig/picotool/zig-pkg/N-V-__8AAMI8bAA1OLWzkwIWAXNxVMZV0urvzoSeC9tRCB4G/main.cpp)
            reset();
            ^
zig-pkg/N-V-__8AAMI8bAA1OLWzkwIWAXNxVMZV0urvzoSeC9tRCB4G/main.cpp:4790:34: 0x122c7d7 in execute (/home/tobi/repos/zig/picotool/zig-pkg/N-V-__8AAMI8bAA1OLWzkwIWAXNxVMZV0urvzoSeC9tRCB4G/main.cpp)
            picoboot::connection connection(std::get<2>(handles), std::get<0>(handles));
                                 ^
zig-pkg/N-V-__8AAMI8bAA1OLWzkwIWAXNxVMZV0urvzoSeC9tRCB4G/main.cpp:10421:36: 0x126629c in main (/home/tobi/repos/zig/picotool/zig-pkg/N-V-__8AAMI8bAA1OLWzkwIWAXNxVMZV0urvzoSeC9tRCB4G/main.cpp)
                if (!selected_cmd->execute(devices) && tries) {
                                   ^
../sysdeps/nptl/libc_start_call_main.h:58:16: 0x7c11d882a1c9 in __libc_start_call_main (../sysdeps/x86/libc-start.c)
../csu/libc-start.c:360:3: 0x7c11d882a28a in __libc_start_main_impl (../sysdeps/x86/libc-start.c)
???:?:?: 0x12091b4 in ??? (???)
run
└─ run exe picotool failure
error: process terminated with signal ABRT
failed command: ./.zig-cache/o/227395296b062aa05224d9bee1341637/picotool info

Build Summary: 17/19 steps succeeded (1 failed)
run transitive failure
└─ run exe picotool failure

error: the following build command failed with exit code 1:
.zig-cache/o/93284605db47efe205191195027b324d/build /home/tobi/.cache/zig/p/N-V-__8AAFFSVRWqblwBIcA-Yqv-u7sbjsJoww8K0mWaHbmJ/zig /home/tobi/.cache/zig/p/N-V-__8AAFFSVRWqblwBIcA-Yqv-u7sbjsJoww8K0mWaHbmJ/lib /home/tobi/repos/zig/picotool .zig-cache /home/tobi/.cache/zig --seed 0xd4af7bf6 -Z6b5ea6c4392ffb64 run -- info
Vorherrschende Sprache
Zig
Sterne
5
Forks
3
Ø Merge
1 Min.
Gemergte PRs (30 T.)
2

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Ähnliche Issues

Weitere Issues zu CLI

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.