1
我有具有以下功能實現一個foo.c的源文件:設置使用gdb斷點時相同的源文件被多次使用
#include "header.h"
void PREFIX(function_name)(){
...
}
我會將此文件複製到兩個目錄(DIR1和dir2)。 Dir1中,我有header.h這樣的:
#define PREFIX(a) prefix1_ ## a
和DIR2,我有header.h喜歡:
#define PREFIX(a) prefix2_ ## a
因此,在連接過程中,我將有兩個不同的功能名。
當我想用gdb來調試這個函數時,我的問題就出現了,我需要在這個函數的特定行中設置一個斷點。 如果我做的:
b foo.c:235
和235的功能是實現內部的線路,其中功能GDB要實際設置斷點? prefix1_function_name或prefix2_function_name?
有沒有辦法讓gdb設置兩個斷點?
謝謝!
在我看來,你應該在這裏重新考慮你的方法。你爲什麼要爲同一個函數使用兩個不同的名字?這似乎是一種使代碼不必要地混淆而難以維護的方法。無論如何,我相信它會在兩者中,但我不知道。您似乎可以通過設置斷點,雙向調用函數以及使用回溯來驗證呼叫路徑來相當快地測試它。 – dbeer