2014-09-05 119 views
0

我有一個Derived類繼承自Base,我有一個崩潰在我的函數之一。我打開了gdb,試圖弄清楚發生了什麼,並試圖打印出一個回溯。然而,它只顯示它在我100%知道路徑爲:Derived::func -calls>Base::func時調用了Base::func,但它沒有在回溯中顯示Dreived::func部分。是否有一些我錯過的設置在手冊中看不到?gdb backtrace不顯示虛擬功能它來自

+0

請顯示基類和派生類的相關部分的類聲明以及您所看到的跟蹤。 – 2014-09-05 18:09:07

+0

我不允許這樣做 – csteifel 2014-09-05 18:10:01

+0

然後創建一個測試程序,顯示相同的症狀並顯示。創建測試程序的練習可能會幫助您解決問題,並且現在您的問題是要求我們推測沒有任何信息出現問題以支持猜測。 – 2014-09-05 18:12:09

回答

1

這個問題沒有足夠的細節來回答它。你所看到的可能有很多原因。例如,從派生函數到基函數的調用可能已被編譯器轉換爲尾調用,這意味着派生調用不會出現在堆棧上。