Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 在计时器函数中使用GDB_C_Linux_Timer_Gdb - Fatal编程技术网

C 在计时器函数中使用GDB

C 在计时器函数中使用GDB,c,linux,timer,gdb,C,Linux,Timer,Gdb,我有一个C程序,它使用一个计时器,当计时器过期时,程序会做一些事情(设置一个标志) 我的问题是:当我设置断点并使用GDB运行程序,并使用“step”逐行检查时,计时器是否在后台一直滴答作响?或者在我再次按下“s”键(下一步)之前它会停止吗?假设您使用了时钟\u REALTIME,是的。计时器会一直滴答作响,如果你花很多时间看一条指令,它会在下一次执行程序时发送信号。您可以在2.6.12之后的Linux中使用CLOCK\u-THREAD\u-CPUTIME\u-ID或CLOCK\u-PROCESS

我有一个C程序,它使用一个计时器,当计时器过期时,程序会做一些事情(设置一个标志)


我的问题是:当我设置断点并使用GDB运行程序,并使用“step”逐行检查时,计时器是否在后台一直滴答作响?或者在我再次按下“s”键(下一步)之前它会停止吗?

假设您使用了
时钟\u REALTIME
,是的。计时器会一直滴答作响,如果你花很多时间看一条指令,它会在下一次执行程序时发送信号。您可以在2.6.12之后的Linux中使用
CLOCK\u-THREAD\u-CPUTIME\u-ID
CLOCK\u-PROCESS\u-CPUTIME\u-ID
,但这些可能无法满足您的需求,因为它们不测量墙上的时钟时间。

计时器是如何实现的?非常感谢,这是非常有用的信息。添加一个问题:)我看看我是否这样做(花一段时间:))在计时器删除失败后,说无效输入(即计时器id)不再有效。为什么会这样?我在timer\u setttime中使用SIGEV\u THRAED,在timer\u create中使用CLOCK\u REALTIME。