khi debug bằng gdb: p ltpHead->tMID thì bị lỗi Cannot access memory at address 0x32310030
dẫn đến Segment fault
mọi người kiểm tra hộ em em sai chỗ nào với nhé. Thanks all
đoạn thư viện sử dụng
Code:
typedef struct			
{
	VUCHAR		bFID_FUNC;
	VUCHAR		bFID_OPT;
}TAG_FID;

typedef struct				
{
	VUSHORT		wMessageID;	
	VUCHAR		bPrimitive;	
	VUCHAR		bReplyDirect;
}TAG_MID;

typedef struct			
{
	TAG_CARD_NO	tSrcCardNo;
	TAG_CARD_NO	tDstCardNo;
}TAG_XID;

typedef struct			
{
	TAG_FID		tFID;	
	TAG_MID		tMID;	
	TAG_XID		tXID;	
	VUSHORT		wS_Flag;
}TAG_CARD_COM_HEADER;


typedef struct
{
	TAGMW_MSGC_COM_HEADER		tMsgComHeader;
	DWORD						dwSize;		
	VBYTE*						bpData;		
}T_SS_TH_MSG_TCPMSGRCV;

typedef struct
{
	UINT							uiMsgType;	
	USHORT							wTrcLv;		
	USHORT							wBufIdx;	
	ENUMW_MSGC_BUF_REL_FLG			eBufRelFlg;	
	UINT							uiBufpoolId;
	VVOID*							vpBufPtr;	
	UINT							uiBufSize;	
	UINT							uiUdatSize;	
} TAGMW_MSGC_COM_HEADER;

typedef enum
{
	EMW_MSGC_BUF_REL_FLG_ON = 0,
	EMW_MSGC_BUF_REL_FLG_OFF,	
	EMW_MSGC_BUF_REL_FLG_MAX	
} ENUMW_MSGC_BUF_REL_FLG;
file code sử dụng
Code:
VOID	CApiSsFldFldf::DispatchMsg( VTAG T_SS_TH_MSG_TCPMSGRCV* atpMsg )
{
	VTAG TAG_CARD_COM_HEADER*		ltpHead = new TAG_CARD_COM_HEADER;	
	DWORD							ldwMid;
	if( atpMsg == NULL )
	{
	return;
	}
	ltpHead = (VTAG TAG_CARD_COM_HEADER*)atpMsg->bpData;
		ldwMid = (*(DWORD*)&(ltpHead->tMID) & 0xFFFFFF00 ); //<~ loi truy cap bo nho xay ra o day

return;
}
- - - Nội dung đã được cập nhật ngày 18-02-2016 lúc 02:53 PM - - -

Em xin close topic, lỗi do data truyền vào không ép được kiểu cấu truc của biến ltpHead gây ra lỗi
Ai có đóng góp gì bổ sung thì thêm nhé. Cảm ơn đã đọc topic ak.