2009-05-28 2 views
2

Ich versuche, ein Apache-Modul auf RHEL zu debuggen, und die Optimierung stört mich. Ich habe versucht, die '-O2' von EXTRA_CFLAGS in apache_2.2.4/build/config_vars.mk, b zu löschen, aber es hat nicht geholfen. APXS ist ausreichend komplex (und mein Perl ist so schlecht), dass ich nicht weiß, wie ich herausfinden soll, wie diese Flagge gesetzt wird.So deaktivieren Sie die Optimierung (-02) für Apache-Module mit APXS

Da seltsame Dinge passieren, möchte ich die Optimierung für alle Apache deaktivieren, nicht nur die Module (ja, mehrere) wir hinzufügen.

Jeder weiß, wie man den Optimierer abstellt? (So ​​kann der Debugger gut funktionieren).

TIA.

Antwort

-3

Es sollte für das Debuggen ausreichen, wenn Sie den Parameter "-Wc, -g" hinzufügen.

1

Markos Antwort ist nahe, aber -g stellt nur Debugging-Symbole zur Verfügung und deaktiviert nicht den Optimierer (der manchmal eine PITA zum Debuggen ist).

Wenn ich mein mod_epp Modul debuggen, ich benutze:

Build-Apache mit: ./configure --enable-Maintainer-Modus prefix =/usr/local/apache2 Bauen/installieren Sie das Modul mit:/usr/local/apache2/bin/apxs -Wc, -Oo -c -i mod_epp.c

Dies führt dazu, dass sowohl -O2 als auch -O0 zu gcc gegeben werden, wobei -O0 gewinnt.

0

Schauen Sie in Ihre config_var.mk Datei wieder

das apxs Programm sammelt alle diese Einträge als CFLAGS

SHLTCFLAGS CFLAGS NOTEST_CPPFLAGS EXTRA_CPPFLAGS EXTRA_CFLAGS

Ihre -O2 in sein müssen Sie.

Auch ist mein config_var.mk in /usr/lib/httpd/build/config_vars.mk auf RHEL5 Maschine ich weiß

0
 
mod_auth_foo.c: 
     ${APXS} "-Wc,${AM_CFLAGS} ${DEFAULT_INCLUDES} ${CFLAGS}" -c mod_auth_foo.c ${AM_LDFLAGS} ${mod_auth_foo_LDFLAGS} ${mod_auth_foo_LIBADD} 

ist, was ich in Makefile.am für Apache-Modul verwenden, und diese Richtig propagiert -O0 -ggdb3, dass ich über configure CFLAGS="-O0 -ggdb3" gesetzt. Die resultierende make-Ausgabe wäre

/usr/lib64/apr-1/build/libtool --silent --mode=compile gcc -prefer-pic -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -fPIC -Wall -fno-strict-aliasing -DLDAP_DEPRECATED -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -pthread -I/usr/include/apache2 -I/usr/include/apr-1 -I/usr/include/apr-1 -D_FILE_OFFSET_BITS=64 -D_REENTRANT -Wall -Waggregate-return -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -Wshadow -Wstrict-prototypes -Winline -Wformat=2 -pipe -I.. -I.. -O0 -ggdb3 -c -o mod_auth_foo.lo mod_auth_foo.c && touch mod_auth_foo.slo, die etwa richtig aussieht.

Keine Änderung der Apache-Dateien erforderlich.

Verwandte Themen