2011-07-22 57 views
4

我有一個用C++編寫的dylib,它有一個超載的operator newdelete在dylib中重載的操作符刪除替換OSX中的系統操作符

當我dylib的鏈接我的可可應用程序,我有一個BAD_ACCESS_ERROR因爲可可試圖釋放內存與我operator delete從我dylib。

所以我認爲我可以使用unexported_symbols_list選項,但operator delete, delete[], new, new[], new(..)的裝飾名稱是什麼?

+0

難道你不能把這些定義放在一個未命名的命名空間中,以防止在導出時出現名稱衝突嗎? –

+1

@Konrad,你不能在'namespace'裏面實現'operator new'。 http://www.ideone.com/FIkn1。有時候我也提過一個問題。 – iammilind

+0

@iammilind啊,拍攝。 –

回答

1

您可以使用nm工具從lib和c++filt中提取導出的符號,然後將其解壓縮,然後查找哪些符號與所提及的運算符相對應。