Opened 17 years ago
Closed 13 years ago
#188 closed defect (wontfix)
Cannot debug long C files
Reported by: | guest | Owned by: | bird |
---|---|---|---|
Priority: | normal | Milestone: | libc-0.6.5 |
Component: | emx | Version: | 0.6 |
Severity: | normal | Keywords: | |
Cc: | mozilla@… |
Description
I'm not actually sure if this is a problem of the compiler, the linker, or the symbol format used by the debuggers. But I cannot debug long C files because in the debugger I am shown the wrong lines.
An example of such a problem is the SQLite amalgamation which has almost 68000 source lines. In the debugger I am put to line 1954 when I should really be looking at line 67487. That made me think the limit was 216 but I then cut the source down to 63000 lines by removing Win and Unix cases and still was put to line ~28800 when I should have been looking at 62205...
This is with GCC 3.3.5 CSD3.
Change History (5)
comment:1 by , 17 years ago
comment:2 by , 16 years ago
This is a combination a issues.
See
Line number entries are shorts, so we are limited to 64K-1 lines. It appears that the debugger is treating these as signed rather than unsigned and thus the 32K-1 limit.
comment:3 by , 16 years ago
BTW, my prior comment applies to type 0 line number entries. If the compiler generated type 2 entries for large source files, it's possible the the debugger can handle them.
comment:4 by , 14 years ago
Component: | baselayout → emx |
---|---|
Milestone: | → libc-0.6.4 |
Status: | new → assigned |
It could be an emxomf problem, will check. Thanks for the hints Steven.
comment:5 by , 13 years ago
Resolution: | → wontfix |
---|---|
Status: | assigned → closed |
emxomf generates type 0. I doubt type 2 makes any difference as the source file line number is still 16-bit, only the listing is 32-bit. If someone want to experiment with generating type 2 and see what the debugger actually does, be my guest, I just don't think it's something I should be spending time on right now. The number of source files with more than 32K lines in one file are very few.
Indeed when compiling I get many messages like this
so it would seem the format is at fault. Any way around that?