是否可以在多线程程序中设置检查点?

问题描述 投票:0回答:1

我必须调试具有多个线程的程序。我使用gdb,并且我想使用检查点。 manual中的唯一限制是检查点仅在gnu / linux系统上可用,而与线程无关。

但是,当我尝试检查点时,出现错误:

(gdb) checkpoint
checkpoint: can't checkpoint multiple threads.

我是否做错了,还是确实无法检查点多线程程序(此限制未在手册中列出?


N.B .:我很清楚在并发系统中检查点/回滚的概念确实很困难,由于此类程序的因果关系,问题更多的是关于我是否缺少某些内容。

multithreading gdb
1个回答
0
投票

当您调试多线程程序时,如果要使用断点,则应该知道代码行在哪个线程下运行,然后切换到该线程,则可以使用断点bro:D。看看这两个链接:

:的最大帮助:

https://sourceware.org/gdb/current/onlinedocs/gdb/Threads.html

不错看:

https://totalview.io/sites/totalview/files/pdfs/white-paper-totalview-debugging-multithreaded-apps.pdf

© www.soinside.com 2019 - 2024. All rights reserved.