C 生产者消费者:程序接收信号SIGSEGV,分段故障
我试图用C写操作系统生产者消费者问题。我得到了上面提到的“细分错误”。这里很难解释所有的事情,所以我已经在github上发布了代码。看一眼会让你更好地了解我想问的问题 Github链接: 我的文件顺序:C 生产者消费者:程序接收信号SIGSEGV,分段故障,c,semaphore,producer-consumer,C,Semaphore,Producer Consumer,我试图用C写操作系统生产者消费者问题。我得到了上面提到的“细分错误”。这里很难解释所有的事情,所以我已经在github上发布了代码。看一眼会让你更好地了解我想问的问题 Github链接: 我的文件顺序: prod\u cons\u s.c(主文件) sem.h(包括threads.h) threads.h(包括q.h) q.h(包括TCB.h) 这正是我面临的问题 当我尝试执行V操作并将休眠进程从SemQ带回RunQ时,我遇到了这个错误。 以下是生产者-消费者的场景 我有一个RunQ与生产者->
prod\u cons\u s.c
(主文件)sem.h(包括threads.h)
threads.h(包括q.h)
q.h(包括TCB.h)
这正是我面临的问题
当我尝试执行V操作并将休眠进程从SemQ带回RunQ时,我遇到了这个错误。
以下是生产者-消费者的场景
我有一个RunQ与生产者->消费者->消费者->生产者->消费者
P(&EMPTY)
,并将信号量计数器调低到-1。从而从RunQ中删除此使用者进程并将其添加到SemQ。上下文与运行RunQ中下一个进程(生产者)的CPU交换。成功V(&EMPTY)
将信号量计数器返回到0,并将步骤3中的休眠进程返回到RunQ。错误
任何帮助都将不胜感激 学习如何使用调试器和堆栈跟踪。不要像那样在头文件中定义函数。嘿,伙计们,是的,我使用GDB进行调试,找到我试图取消引用的空指针非常有帮助。这就抛出了错误。现在开始工作了!再次感谢。