2011-07-22 4 views
4

J'ai un dylib écrit en C++ qui a une surcharge operator new et delete.Opérateur surchargé delete in dylib remplace l'opérateur système dans OSX

Quand un lien mon application de cacao avec mon dylib j'ai un BAD_ACCESS_ERROR parce que Cocoa essaie de libérer de la mémoire avec mon operator delete de mon dylib.

Donc je pense que je peux utiliser les options unexported_symbols_list, mais quels sont les noms décorés pour operator delete, delete[], new, new[], new(..)?

+0

Ne pouvez-vous pas mettre les définitions dans un espace de noms sans nom pour éviter les conflits de noms lors de l'exportation? –

+1

@Konrad, vous ne pouvez pas avoir 'operator new' implémenté dans' namespace'. http://www.ideone.com/FIkn1. J'ai également posé une question à ce sujet il y a quelque temps. – iammilind

+0

@iammilind Ah, tire. –

Répondre

1

Vous pouvez utiliser l'outil nm pour extraire les symboles exportés de votre lib et c++filt pour démembrer ensuite et trouver ceux qui correspondent aux opérateurs mentionnés.