From: SourceForge.net <no...@so...> - 2007-01-08 16:12:24
|
Bugs item #1630751, was opened at 2007-01-08 11:12 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=1630751&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: sandra-l (sandra-l) Assigned to: Nobody/Anonymous (nobody) Summary: OMF51 file contains bogus records for local variables Initial Comment: I'm finding that the OMF51 file generated with --debug contains bogus debug_item records specifying an address of 0x00ff in DATA space for block-scope variables that are actually allocated in registers or on the stack. I believe the right thing to do here is simply not to emit debug_item records for these variables at all, since the OMF51 format isn't expressive enough to give their true locations or provide any useful information about them. The attached example shows the problem. Compiling with --debug only puts i and k in registers and j and l in static variables, but the OMF51 file says: 14: debug_item (30 bytes) deftyp = local_symbol seg id = 0x00, offset = 0x00ff, namelen = 1, name = `I' info = 0x42 VAR DATA seg id = 0x00, offset = 0x001c, namelen = 1, name = `J' info = 0x42 VAR DATA seg id = 0x00, offset = 0x00ff, namelen = 1, name = `K' info = 0x42 VAR DATA seg id = 0x00, offset = 0x001f, namelen = 1, name = `L' info = 0x42 VAR DATA If I compile with --stack-auto, then i is put in a register and j, k, and l on the stack, and all four have bogus address info in the OMF51 file: 14: debug_item (30 bytes) deftyp = local_symbol seg id = 0x00, offset = 0x00ff, namelen = 1, name = `I' info = 0x42 VAR DATA seg id = 0x00, offset = 0x00ff, namelen = 1, name = `J' info = 0x42 VAR DATA seg id = 0x00, offset = 0x00ff, namelen = 1, name = `K' info = 0x42 VAR DATA seg id = 0x00, offset = 0x00ff, namelen = 1, name = `L' info = 0x42 VAR DATA ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=1630751&group_id=599 |