Thread View: gnu.gcc.help
1 messages
1 total messages
Started by Mark Glasser
Sat, 21 Nov 1992 00:47
2 problems: dbx support & alignment of doubles in structs
Author: Mark Glasser
Date: Sat, 21 Nov 1992 00:47
Date: Sat, 21 Nov 1992 00:47
58 lines
3282 bytes
3282 bytes
I've just installed gcc-2.3.1. I'm having difficulties on two fronts:
1. The generated code does not seem to be able to be debugged with dbx.
2. Assigning to a double that is a member of a dynamically allocated
structure is problematic. Doubles seem to have different alignment
requirements than with the compiler shipped with the OS.
The particulars:
I'm running on a Sun sparc with SunOS 4.1.1. The "other" compiler is the
Sun C compiler shipped with the system (We got these machines prior to
unbundling). Gcc is configured as
#!/bin/sh
# GCC was configured as follows:
./configure --target=sparc-sun-sunos4.1
echo host=sparc-sun-sunos4.1 target=sparc-sun-sunos4.1 build=sparc-sun-sunos4.1
With -g my unserstanding is gcc generates dbx debugging info with gdb
extensions. Debugging with gdb works fine. Dbx crashes. I recompiled and
replaced -g with -gdbx. The compiler complains that -gdbx is not supported.
A quick perusal through the compiler source reveals that -gstabs enables dbx
debugging output without the gdb extensions. I recompile and try again. No
success. My program has a section that is dynamically linked (i.e. compiled
with -fpic). Could this have anything to do with the problem?
The problem with doubles is a little more subtle. Assigning to a double
that is the member of a structure causes a bus error.
I'm using an in-house memory allocation package that piggybacks off of
malloc and provides memory analysis and debugging capabilities. This
packages has been in use for several years in a number of projects. It's
very stable and I have good confidence in it.
The memory package guarantees that all memory blocks returned are aligned on
4 byte boundaries. Everything works fine with Sun C. With GNUC bus errors
ensue unless I change the memory package to align to 8 byte boundaries.
What's the problem here? Is Sun C "smarter" about padding the strucutre
properly so that sizeof does the right thing and the proper alignments are
enforced? Maybe the real question is: why did it operate proplery under Sun
C? Since doubles require 8 byte alignments it shouldn't have worked.
Are there any known bugs relating to these issues? Am I doing something
wrong?
Thank you in advance for any light you can shed on these problems
Mark Glasser
------------------------------------------------------------------------
markg@nextwave.com Nextwave Design Automation
450 San Antonio Road #27
Palo Alto, CA 94306
(voice) 415.855.9795
(fax) 415.855.9792
------------------------------------------------------------------------
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads