按照以下步骤确认问题:
一、查询编译map文件,找到该字符串(ip)的上一个地址为:TskHandle
.bss.TskHandle
0x20001347 [TskHandle]
.bss.ip
0x20001348 [ip]
二、确认TskHandle的定义长度:8bit
u8 TskHandle;
三、确认TskHandle的使用长度:UINT32 *puwTaskID → 32bit
extern UINT32 LOS_TaskCreate(UINT32 *puwTaskID, TSK_INIT_PARAM_S *pstInitParam);
四、总结问题
ip的上一个定义地址小于使用地址,TskHandle赋值时溢出,造成ip首地址部分被覆盖,导致字符串消失。
字符串消失大多是开头字符被写入0,查询上一个地址的变量长度是否正常是个很好的方向。