dzhjsofo 2014-09-03 03:15 采纳率: 0%
浏览 6547

signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 48a16775

ftint32 fto_match_symbol( fto_task_info *task_info,
ftuint16 input,
ftuint16 symbol)
{
ftuint16 * symbols =
task_info->keymap.symbol_strings +
task_info->keymap.indexes[FT_KEY_2_INDEX(input)] ;
ftuint16 * p_symbol = ft_wcschr(symbols, symbol) ;

if(p_symbol == NULL) 
{
    return FT_FAIL ;
}

if((p_symbol - symbols) >= task_info->keymap.accurate_lens[FT_KEY_2_INDEX(input)])
{
    return 1 ; 
}   

return FT_OK ;

}

执行这个函数时程序挂在
if((p_symbol - symbols) >= task_info->keymap.accurate_lens[FT_KEY_2_INDEX(input)])
这一行了。堆栈信息如下:
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 48a16775
r0 48a24368 r1 00000072 r2 00000072 r3 48a2436a
r4 48a16039 r5 ffff2031 r6 0000000c r7 48a2488a
r8 00000001 r9 ffffffff sl 48dbc7e2 fp 48a2484e
ip 00000001 sp 48dbc6d8 lr 48dd2303 pc 48dd2308 cpsr 20050030

请问这问题怎么解?
如果task_info指向的地址无效的话,应该在

    ftuint16 * symbols =
        task_info->keymap.symbol_strings +
        task_info->keymap.indexes[FT_KEY_2_INDEX(input)] ;

就挂掉了啊?哪位大神知道是什么原因

  • 写回答

1条回答

  • dzhjsofo 2014-09-03 03:35
    关注

    这个问题一般在持续运行四五个小时以上才会出现

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?
  • ¥15 电磁场的matlab仿真
  • ¥15 mars2d在vue3中的引入问题
  • ¥50 h5唤醒支付宝并跳转至向小荷包转账界面
  • ¥15 算法题:数的划分,用记忆化DFS做WA求调
  • ¥15 chatglm-6b应用到django项目中,模型加载失败
  • ¥15 CreateBitmapFromWicBitmap内存释放问题。
  • ¥30 win c++ socket
  • ¥15 C# datagridview 栏位进度