2012-10-29 43 views
6

İçerisinde yaklaşık 300 .c dosyasının en üstünde bir #define eklemem gerekir. Açık kaynak kodu olduğu için kodu değiştirmemeyi tercih ederim, ancak eğer varsa, tüm dosyaları değiştirmek için bir komut dosyası yazacağım. Derleme sırasında her kaynak dosyanın üstüne bir #define eklemek veya gc dosyası eklemek için gcc kullanarak bir yolu var mı?Tüm .c kaynak dosyalarında derleme zamanında derleme zamanı

#define malloc MYmalloc 
+0

Sanırım bu .c dosyalarının çoğunu doğrudan veya dolaylı olarak #'. Hmmm ... – aschepler

cevap

16

Sen gcc seçeneklerine -Dmalloc=MYmalloc geçirebilirsiniz: #define budur. -D seçeneği hakkında daha fazla bilgi için

:

hata ayıklama amacıyla malloc fonksiyonun davranışını değiştirmek istiyorsanız, siz de glibc malloc kanca ilginizi çekebilir o

http://gcc.gnu.org/onlinedocs/gcc/Preprocessor-Options.html

Not:

+0

Teşekkürler ouah, Bunu deneyeceğim ve sorunlarımı çözeceğini düşünüyorum. Malloc kancalarını ve LD_PRELOAD çözümlerini biliyorum ama bunlar benim durumum için uygun değil. Her iki yol da diğer izleyiciler için bundan bahsetmektir. –

3

gcc seçeneği -D:

-D name 
    Predefine name as a macro, with definition 1. 

-D name=definition 
    .... 

, böylece durumda, ben doğrusu zamanında sizin uygulamasının ön yükleme yoluyla özel kod sağlamak için öneriyoruz özel işlevine malloc() çağrıları yönlendirme için çaba varsa gcc ... -Dmalloc=MYmalloc

İlgili konular