我遇到如下SIGABRT
错误,
Program received signal SIGABRT, Aborted.
0x00007fffe65d8c37 in __GI_raise (sig=sig@entry=6)
at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
然后我用gdb找到有问题的代码,
std::assert (address.m_len <= MAX_SIZE);
std::assert (m_len <= MAX_SIZE);
std::memcpy (m_data, address.m_data, m_len);
gdb显示address.m_len&lt; = MAX_SIZE和m_len&lt; = MAX_SIZE没有问题如下,但断言仍然失败。
52 m_len (address.m_len)
(gdb) n
54 NS_ASSERT (address.m_len <= MAX_SIZE);
(gdb) n
55 NS_ASSERT (m_len <= MAX_SIZE);
(gdb) n
56 std::memcpy (m_data, address.m_data, m_len);
(gdb) p address.m_len<=MAX_SIZE
$1 = true
(gdb) p m_len<=MAX_SIZE
$2 = true
(gdb) n
57 }
(gdb) n
assert failed. cond="address.m_len <= MAX_SIZE", file=../src/network/model/address.cc, line=54
terminate called without an active exception
Program received signal SIGABRT, Aborted.
0x00007fffe65d8c37 in __GI_raise (sig=sig@entry=6)
at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
有人可以给我一些建议来找出m_len会发生什么吗?