Skip to contentSkip to conversation

Use -fno-omit-frame-pointer in addition to -g

PATCH In review Samuel Thibault 2 participants 5 messages Mar 6, 2008 – Mar 7, 2008

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Use -fno-omit-frame-pointer in addition to -g

Use -fno-omit-frame-pointer in addition to -g as that permits to use simple stack walk while debugging

Config.mk +1 -1
diff -r fb74347d80c3 Config.mk
@@ -55,7 +55,7 @@ endef
 endef
 
 ifeq ($(debug),y)
-CFLAGS += -g
+CFLAGS += -g -fno-omit-frame-pointer
 endif
 
 CFLAGS += -fno-strict-aliasing
extras/mini-os/minios.mk +1 -1
diff -r fb74347d80c3 extras/mini-os/minios.mk
@@ -15,7 +15,7 @@ DEF_LDFLAGS =
 DEF_LDFLAGS =
 
 ifeq ($(debug),y)
-DEF_CFLAGS += -g
+DEF_CFLAGS += -g -fno-omit-frame-pointer
 else
 DEF_CFLAGS += -O3
 endif
#1 lore raw

[PATCH2] Don't optimize function calls with -g

Quoted 2 lines · Samuel Thibault, le Thu 06 Mar 2008 15:55:09 +0000, a écrit :

Use -fno-omit-frame-pointer in addition to -g as that permits to use simple stack walk while debugging

Even better:

Don't optimize function calls with -g
-fno-omit-frame-pointer to easily walk the stack
-fno-optimize-sibling-calls to not miss a step

Config.mk +1 -1
diff -r fb74347d80c3 Config.mk
@@ -55,7 +55,7 @@ endef
 endef
 
 ifeq ($(debug),y)
-CFLAGS += -g
+CFLAGS += -g -fno-omit-frame-pointer -fno-optimize-sibling-calls
 endif
 
 CFLAGS += -fno-strict-aliasing
extras/mini-os/minios.mk +1 -1
diff -r fb74347d80c3 extras/mini-os/minios.mk
@@ -15,7 +15,7 @@ DEF_LDFLAGS =
 DEF_LDFLAGS =
 
 ifeq ($(debug),y)
-DEF_CFLAGS += -g
+DEF_CFLAGS += -g -fno-omit-frame-pointer -fno-optimize-sibling-calls
 else
 DEF_CFLAGS += -O3
 endif
#2 lore raw

Re: [PATCH2] Don't optimize function calls with -g

Should be in config/StdGNU.mk and config/SunOS.mk. Is optimize-sibling-calls a gcc option that is supported in all our supported gcc versions? Note that we do CFLAGS ?= ... in StdGNU.mk and SunOS.mk right now. Probably these should be changed to +=. That still allows extra CFLAGS to be passed in on the make command line, but avoids the weird subservience of these debug-related CFLAG additions.

Whether SunOS should really have different usage of omit-frame-pointer is open to argument. The Sun guys like to have frame pointers always, and it seems that is basically a general policy across Solaris binaries, so I let them have that difference.

-- Keir

Quoted 43 lines · Samuel Thibault
Quoted 2 lines · Samuel Thibault, le Thu 06 Mar 2008 15:55:09 +0000, a écrit :

Use -fno-omit-frame-pointer in addition to -g as that permits to use simple stack walk while debugging

Even better:

Don't optimize function calls with -g

(quoted diff) +0 -2
-fno-omit-frame-pointer to easily walk the stack
-fno-optimize-sibling-calls to not miss a step

diff -r fb74347d80c3 Config.mk

Config.mk Thu Mar 06 15:57:53 2008 +0000 renamed from Config.mk Wed Mar 05 12:20:40 2008 +0000 +1 -1
@@ -55,7 +55,7 @@ endef
 endef
 
 ifeq ($(debug),y)
-CFLAGS += -g
+CFLAGS += -g -fno-omit-frame-pointer -fno-optimize-sibling-calls
 endif
 
 CFLAGS += -fno-strict-aliasing

diff -r fb74347d80c3 extras/mini-os/minios.mk

extras/mini-os/minios.mk Thu Mar 06 15:57:53 2008 +0000 renamed from extras/mini-os/minios.mk Wed Mar 05 12:20:40 2008 +0000 +1 -1
@@ -15,7 +15,7 @@ DEF_LDFLAGS =
 DEF_LDFLAGS =
 
 ifeq ($(debug),y)
-DEF_CFLAGS += -g
+DEF_CFLAGS += -g -fno-omit-frame-pointer -fno-optimize-sibling-calls
 else
 DEF_CFLAGS += -O3
 endif

_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel

#3 lore raw

Re: [PATCH2] Don't optimize function calls with -g

Quoted 2 lines · Keir Fraser, le Fri 07 Mar 2008 13:36:31 +0000, a écrit :

Is optimize-sibling-calls a gcc option that is supported in all our supported gcc versions?

It is available at least from gcc 3.3

Samuel

#4 lore raw

[PATCH3] Don't optimize function calls with -g

In reply to Keir Fraser
Quoted 2 lines · Keir Fraser, le Fri 07 Mar 2008 13:36:31 +0000, a écrit :

Note that we do CFLAGS ?= ... in StdGNU.mk and SunOS.mk right now. Probably these should be changed to +=.

Ooh, that's why I missed the already existing -fno-omit-frame-pointer there.

Quoted 2 lines

Whether SunOS should really have different usage of omit-frame-pointer is open to argument.

Ok, I'll leave it to people who actually run a SunOS system :)

Don't optimize function calls on GNU systems with debug=y by enforcing the addition of -fno-omit-frame-pointer, and adding -fno-optimize-sibling-calls.

config/StdGNU.mk +1 -1
diff -r fb74347d80c3 config/StdGNU.mk
@@ -45,5 +45,5 @@ CFLAGS ?= -O2 -fomit-frame-pointer
 CFLAGS ?= -O2 -fomit-frame-pointer
 else
 # Less than -O1 produces bad code and large stack frames
-CFLAGS ?= -O1 -fno-omit-frame-pointer
+CFLAGS += -O1 -fno-omit-frame-pointer -fno-optimize-sibling-calls
 endif