2 dzhj11 dzhj11 于 2014.09.03 11:15 提问

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个回答

dzhj11
dzhj11   2014.09.03 11:35

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!