在VxWorks中使用recvfrom()时的Pagefault

时间:2014-03-26 10:37:36

标签: sockets posix vxworks

vxworks 5.5.1中的posix socket api有一个奇怪的问题。代码是微不足道的,可能不是很有趣(在下面添加),但它的要点是:在与调用{{1}的单独函数中调用socket()bind()时1}},页面故障发生在recvfrom()电话。如果一切都在同一个功能完成,它工作正常。请注意,在调用recvfrom()时会立即发生故障,而不是在数据包到达时发生。

VxWorks是否会以某种意外的方式为此API使用堆栈?

编辑:添加了一些代码。 recvfrom()函数工作正常,但te_serve1()(使用辅助函数)不能。

te_serve_one()

2 个答案:

答案 0 :(得分:0)

settup()声明跟随local:

struct sockaddr_in addr;

如果你声明" struct sockaddr_in addr;"会发生什么?在te_serve_one()中并将其传递给setup()?

答案 1 :(得分:0)

查看优化的程序集,我意识到sock变量被ret覆盖,此时该变量未使用并初始化为零。出色。