Skip to content

Instantly share code, notes, and snippets.

@tommie
Last active May 18, 2025 10:10
Show Gist options
  • Save tommie/db4f1e8b2b96076fd8b9df08b1651b74 to your computer and use it in GitHub Desktop.
Save tommie/db4f1e8b2b96076fd8b9df08b1651b74 to your computer and use it in GitHub Desktop.
(gdb) bt
#0 crash_dump::trigger_crash_dump () at ./src/common/crash_dump/dump.cpp:354
#1 iwdg_warning_cb () at ./src/buddy/main.cpp:721
#2 0x08060ace in wdt_tick_1ms () at ./src/common/wdt.cpp:76
#3 wdt_tick_1ms () at ./src/common/wdt.cpp:57
#4 SysTick_Handler () at ./src/buddy/timing_sys.cpp:31
#5 <signal handler called>
#6 0x080a7cfc in USBH_MSC_RdWrProcess (phost=phost@entry=0x20007574 <hUsbHostHS>, lun=lun@entry=0 '\000') at ./lib/Middlewares/ST/STM32_USB_Host_Library/Class/MSC/Src/usbh_msc.c:691
#7 0x080a7e48 in USBH_MSC_Read (phost=0x20007574 <hUsbHostHS>, lun=0 '\000', address=<optimized out>, pbuf=<optimized out>, length=1)
at ./lib/Middlewares/ST/STM32_USB_Host_Library/Class/MSC/Src/usbh_msc.c:827
#8 0x08062b38 in USBH_MSC_WorkerTask () at ./src/buddy/usbh_diskio.cpp:145
#9 0x080b86ec in vPortEnableVFP () at ./lib/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c:794
(gdb) sel 6
(gdb) disassemble
0x080a7cec <+40>: bl 0x80a846c <USBH_MSC_SCSI_Read>
0x080a7cf0 <+44>: cbnz r0, 0x80a7d0a <USBH_MSC_RdWrProcess+70>
0x080a7cf2 <+46>: movs r3, #1
0x080a7cf4 <+48>: strb.w r3, [r4, #144] @ 0x90
0x080a7cf8 <+52>: movs r0, #0
0x080a7cfa <+54>: add sp, #8
=> 0x080a7cfc <+56>: pop {r4, r5, r6, pc}
(gdb) p *request
$14 = {
static SECTOR_SIZE = 512,
operation = UsbhMscRequest::UsbhMscRequestOperation::Read,
lun = 0 '\000',
count = 1,
sector_nbr = 1219147,
data = 0x200122ac "\177\323\266m\333\244m\333\266m\3336i\323$M\2326M\3234I\222$I\222$I\222$I\372\177\332\266m\333\266M\332\244m\323\266I\323&m\323$I\222$I\222$I\222$I\222$I\372\177\333
\266m\323\266m\333\266M\333\266i\333\244I\222\244i\223&I\222$I\222$I\222$I\372\177\333\244m\333\246m\333\246i\333\266i\333\244I\222$I\223$I\222$I\222$I\222$I\372\177\333&m\3336m\333\266m
\333\266m\323$i\3224m\322$I\222$I\222$I\222$I\372_\333\264m\333\264m\333\246m\332\244m\222$I\3326i\222$I\222&I\222$I\222$I\372\177\323&m\333\244m\332"...,
result = USBH_FAIL,
callback = 0x8060419 <USBH_worker_notify(USBH_StatusTypeDef, void*, void*)>,
callback_param1 = 0x20019d90,
callback_param2 = 0x0
}
(gdb) p *(MSC_HandleTypeDef*) phost->pActiveClass->pData
$6 = {
max_lun = 1 '\001',
Reserved = "@\277\026",
InPipe = 3 '\003',
OutPipe = 2 '\002',
OutEp = 2 '\002',
InEp = 130 '\202',
OutEpSize = 64,
InEpSize = 64,
state = MSC_READ,
error = MSC_OK,
req_state = MSC_REQ_IDLE,
prev_req_state = MSC_REQ_IDLE,
hbot = {
data = {4294962944, 131072, 1701733703, 543385970, 1936941389, 1869894432, 1701273970, 538976288, 959983153, 0, 0, 0, 0, 0, 0, 0},
state = BOT_RECEIVE_CSW_WAIT,
prev_state = 0,
cmd_state = BOT_CMD_WAIT,
cbw = {
field = {
Signature = 1128420181,
Tag = 540033104,
DataTransferLength = 0,
Flags = 128 '\200',
LUN = 0 '\000',
CBLength = 10 '\n',
CB = "(\000\000\022\232K\000\000\001\000\000\000\000\000\000"
},
data = "USBCP@0 \000\000\000\000\200\000\n(\000\000\022\232K\000\000\001\000\000\000\000\000\000"
},
Reserved1 = 0 '\000',
csw = {
field = {
Signature = 1303829119,
Tag = 3681138395,
DataResidue = 3067833782,
Status = 77 'M'
},
data = "\177\332\266M\333\266i\333\266m\333\266M"
},
Reserved2 = "\2236i",
pbuf = 0x249249a4 <error: Cannot access memory at address 0x249249a4>
},
unit = {{
state = 73,
error = (MSC_ERROR | unknown: 0x90),
prev_ready_state = 36,
capacity = {
block_nbr = 4199097490,
block_size = 56191
},
sense = {
key = 219 '\333',
asc = 182 '\266',
ascq = 109 'm'
},
inquiry = {
PeripheralQualifier = 219 '\333',
DeviceType = 182 '\266',
RemovableMedia = 109 'm',
vendor_id = "\322&i\323&I\322\244I",
product_id = "\222$I\222$I\222$I\222$I\372 ",
revision_id = "1.89"
},
state_changed = 1 '\001'
}},
current_lun = 0,
rw_lun = 0,
timer = 16514
}
(gdb) p &((MSC_HandleTypeDef*) phost->pActiveClass->pData).hbot.csw
$16 = (BOT_CSWTypeDef *) 0x20018360
(gdb) p &((MSC_HandleTypeDef*) phost->pActiveClass->pData).unit[0].inquiry.product_id
$19 = (uint8_t (*)[17]) 0x20018393
(gdb) p &((MSC_HandleTypeDef*) phost->pActiveClass->pData).unit[0].inquiry.product_id[17 - 4]
$20 = (uint8_t *) 0x200183a0 " "
(gdb) p 0x200183a0-0x20018360
$21 = 64
p *((HCD_HandleTypeDef*) phost->pData)
$17 = {
Instance = 0x40040000,
Init = {
dev_endpoints = 0,
Host_channels = 4, speed = 1,
dma_enable = 1,
ep0_mps = 0,
phy_itface = 2,
Sof_enable = 0,
low_power_enable = 0,
lpm_enable = 0,
battery_charging_enable = 0,
vbus_sensing_enable = 0,
use_dedicated_ep1 = 0,
use_external_vbus = 0
},
hc = {{
dev_addr = 1 '\001',
ch_num = 0 '\000',
ep_num = 0 '\000',
ep_is_in = 0 '\000',
speed = 1 '\001',
do_ping = 0 '\000',
process_ping = 0 '\000',
ep_type = 0 '\000',
max_packet = 64,
data_pid = 2 '\002',
xfer_buff = 0x0,
XferSize = 0,
xfer_len = 0,
xfer_count = 0,
toggle_in = 0 '\000',
toggle_out = 1 '\001',
dma_addr = 0,
ErrCnt = 0,
urb_state = URB_DONE,
state = HC_XFRC
}, {
dev_addr = 1 '\001',
ch_num = 1 '\001',
ep_num = 0 '\000',
ep_is_in = 1 '\001',
speed = 1 '\001',
do_ping = 0 '\000',
process_ping = 0 '\000',
ep_type = 0 '\000',
max_packet = 64,
data_pid = 2 '\002',
xfer_buff = 0x200182e8 "\001@\277\026\003\002\002\202@",
XferSize = 64,
xfer_len = 1,
xfer_count = 1,
toggle_in = 1 '\001',
toggle_out = 0 '\000',
dma_addr = 0,
ErrCnt = 0,
urb_state = URB_DONE,
state = HC_XFRC
}, {
dev_addr = 1 '\001',
ch_num = 2 '\002', # MSC_Handle->OutPipe
ep_num = 2 '\002',
ep_is_in = 0 '\000',
speed = 1 '\001',
do_ping = 0 '\000',
process_ping = 0 '\000',
ep_type = 2 '\002',
max_packet = 64,
data_pid = 2 '\002', # HC_PID_DATA1
xfer_buff = 0x2001833c "USBCP@0 ",
XferSize = 31,
xfer_len = 31,
xfer_count = 0,
toggle_in = 0 '\000',
toggle_out = 0 '\000',
dma_addr = 0,
ErrCnt = 0,
urb_state = URB_DONE,
state = HC_XFRC
}, {
dev_addr = 1 '\001',
ch_num = 3 '\003', # MSC_Handle->InPipe
ep_num = 2 '\002',
ep_is_in = 1 '\001',
speed = 1 '\001',
do_ping = 0 '\000',
process_ping = 0 '\000',
ep_type = 2 '\002', # EP_TYPE_BULK
max_packet = 64,
data_pid = 2 '\002', # HC_PID_DATA1
xfer_buff = 0x20018360 "\177\332\266M\333\266i\333\266m\333\266M\323$i\2236i\322\244I\222$I\222$I\222$I\372\177\333\266M\333\266m\333\266m\322&i\323&I\322\244I\222$I\222$I\222$I\222$I\372 ",
XferSize = 64,
xfer_len = 13,
xfer_count = 64,
toggle_in = 0 '\000',
toggle_out = 0 '\000',
dma_addr = 0,
ErrCnt = 0,
urb_state = URB_DONE,
state = HC_XFRC
}, {
dev_addr = 0 '\000',
ch_num = 0 '\000',
ep_num = 0 '\000',
ep_is_in = 0 '\000',
speed = 0 '\000',
do_ping = 0 '\000',
process_ping = 0 '\000',
ep_type = 0 '\000',
max_packet = 0,
data_pid = 0 '\000',
xfer_buff = 0x0,
XferSize = 0,
xfer_len = 0,
xfer_count = 0,
toggle_in = 0 '\000',
toggle_out = 0 '\000',
dma_addr = 0,
ErrCnt = 0,
urb_state = URB_IDLE,
state = HC_IDLE
} <repeats 12 times>},
Lock = HAL_UNLOCKED,
State = HAL_HCD_STATE_READY,
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment