我想记录同步操作,例如多线程应用程序的锁,sempahore,障碍,以便以后可以出于调试目的重播记录的应用程序。
途中将提供你自己的锁,sempaphore,条件变量等。这些函数也可以进行日志记录,但是我认为这是一个过大的选择,因为在它们之下必须使用一些常见的同步操作。
所以我的问题是我应该记录哪些同步操作,以便我需要对程序进行最少的修改。换句话说,构建所有这些同步操作的glibc和系统调用中的函数或宏是什么?因此,我只修改那些用于记录和重播的内容。
我能想到的最好的方法是在“记录”模式下使用gdb进行调试:
根据此页面:GDB Process Record线程支持正在进行中,但可能尚未完成。
我可以建议不太严格地回答你的问题
在其他平台上,还存在其他几个线程检查器,但是我对它们没有太多的经验。