GCC:在每条指令后强制调用函数(用于多线程测试)?
我正在尝试测试程序中对线程相当敏感的区域,并且想知道是否有一种方法可以强制 gcc 在发出的每条指令之后插入一个调用,以便我可以手动屈服于不同的线程?
谢谢, 罗伯特
I'm trying to test a rather threading-sensitive area in my program and was wondering if there's a way to force gcc to insert a call after every instruction it emits so that I can manually yield to a different thread?
Thanks,
Robert
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不,GCC 没有这样的选项。
不过,您也许可以编写一个脚本来完成这项工作。您可以使用 -S 选项将代码编译为汇编程序。编译器生成的汇编程序相对容易解析。
不过,不要忘记将标志和所有寄存器保存在调试代码中。
No, GCC does not has such an option.
However, you may be able hack together a script that does that job. You can compile your code to assembler using the -S option. Compiler generated assembler is relative easy to parse.
Don't forget to save the flags and all registers inside your debugging code though.