簡體   English   中英

如何在 gdb 中為匿名命名空間設置斷點?

[英]How to set a breakpoint in gdb for an anonymous namespace?

在我的代碼庫中,有一些在匿名命名空間中定義的回調函數。 我正在 gdb 中調試,我想使用函數名在函數中設置斷點。 我還嘗試使用 filename : linenum 放置斷點,但是如果文件已經加載,這通常會起作用,否則它會說“找不到源文件”在將來的共享庫加載時設置斷點掛起? (y 或 [n]) n

因此,解決方法是,一旦調試器位於同一個文件中,我就可以使用 filename : line number 設置斷點

但是有沒有其他方法可以在匿名命名空間內設置斷點?

相關的stackoverflow 問題: 如何在Visual Studio 中的匿名命名空間內按函數名稱設置斷點?

但這並不能解決這里的問題。

根據stackoverflow中的一些帖子,

  1. 我嘗試使用 ::function_name() 但這不起作用。
  2. 匿名命名空間::function_name()

命名空間 { int function_name(int a, int b) { return a+b; } }

“未找到源文件”/root/workspace/ProtocolInterface.cpp。 在未來的共享庫加載時使斷點掛起? (y 或 [n]) y

即使斷點掛起,它也不會在提到的函數處中斷。

我認為匿名命名空間必須在括號中。

(gdb) b (匿名命名空間)::function_name

它確實對我有用,請試一試。

暫無
暫無

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

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