gpt4 book ai didi

linux - 在 C 中访问共享内存 SIGSEGV 段错误?

转载 作者:太空宇宙 更新时间:2023-11-04 11:10:24 26 4
gpt4 key购买 nike

我的服务器程序创建了 4 个不同大小的共享内存段。客户端程序附加到创建的段,但在 strcmp 上,共享内存变量给出了段冲突。

通过 ipcs 检查..我已经尝试了几个小时,并且用谷歌搜索了所有我想到的东西,但没有得到解决方案。这是一些调试结果...

Program received signal SIGSEGV, Segmentation fault.
0x009aeb87 in __strcmp_sse4_2 () from /lib/libc.so.6
Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.25.el6.i686 libX11-1.3-2.el6.i686 libXau-1.0.5-1.el6.i686 libxcb-1.5-1.el6.i686
(gdb) bt
0 0x009aeb87 in __strcmp_sse4_2 () from /lib/libc.so.6
1 0x0809f242 in isSymb (inName=0x80aa485 "SimTime")
at /usr2/ptask5/TICSS/src/mdsm/dsm/xsymbol.c:178
(gdb) down
1 0x0809f242 in isSymb (inName=0x80aa485 "SimTime")
at /usr2/ptask5/TICSS/src/mdsm/dsm/xsymbol.c:178
if ( !strcmp( sp->symbName, inName ) )
(gdb) p inName
$1 = 0x80aa485 "SimTime"
(gdb) p sp->symbName
$2 = 0x0

sp->symbName 读取为 0x0 因此出现错误...在调试期间发现...但不知道如何修复...请帮助

最佳答案

需要在sp->symbName设置值的地方设置断点(或printfassert)并确保它从未被分配 NULL 并且它被分配了一个值。

关于linux - 在 C 中访问共享内存 SIGSEGV 段错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23468262/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com