簡體   English   中英

LLDB-如何在不停止的情況下附加到進程

[英]LLDB - How to attach to a process without stopping it

我正在尋找一種使用lldb附加到進程而不停止它的方法。 我正在調試的程序存在競爭條件,我擔心暫停會引起更多的熵。

類似的問題,但對於gdbgdb附加到進程而不會停止

使用的版本:

lldb -v
  lldb-900.3.72

x86_64ARMv8-A上,這實際上是不可能ARMv8-A (我在此假設,但它代表大多數現代OS設計/體系結構)。

通常,任何時候該進程(暫時忘記實時的東西)進行系統調用或被中斷(在搶占式操作系統中,這可以通過多種方式發生),都將導致OS處於不確定的時間段。在執行返回到該點之前,取決於系統狀態和調度程序決定的時間(基於諸如時序和優先級之類),它可能會花費其他時間。

您應該只是附加並立即恢復執行。 如果不引入某種形式的抖動,就無法做您真正想要的事情(即使啟動LLDB本身也可能在您上次“運行”的進程所在的同一CPU上發生)。

這就是為什么競態條件很難調試,因為它們很難一致地再現。 有多種方法可以在調試時將抖動降低到最小,但是它們涉及相當復雜的(通常是特定於OS的)工具。

我還建議研究ThreadSanitizer以幫助發現潛在的競爭條件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM