Subject:
|
Strange crash (and possible fix)
|
Newsgroups:
|
lugnet.robotics.rcx.legos
|
Date:
|
Fri, 14 Jul 2000 04:34:11 GMT
|
Viewed:
|
1328 times
|
| |
| |
I had a strange experience today. My program likes to crash a lot. I
accept this as a fact of life now; part of it is the difficulty in
debugging it, and part seems to be the beta-ness of legOS. However, today,
I tracked down one particularly evil bug, and I really don't understand it
at all.
Before, my program would crash roughly 50% of the time right at startup.
I'd make some irrelevant changes and it'd be happy the next time.. maybe.
Then I got the compiler working under LinuxPPC, and started playing around
with LNP. I made some neat debug functions that let me see what was going
on better. I tracked these semi-random crashes down to three lines of
code.
gNavInfo.x = 0;
gNavInfo.y = 0;
gNavInfo.dir = 0;
gNavInfo was defined as:
struct {
long x, y;
long dir;
} gNavInfo;
When the program did its weird random crashes, it was at those three
lines. I'm certain of it. What I don't know is WHY? I changed the
definition into a typedef and made gNavInfo a pointer to that struct. Then
I use malloc to get a chunk for storage. Voila, my crashes seem to have
gone away. The only thing I can think of is if something would break if
the longs weren't aligned on a four-byte boundary. My "irrelevant" changes
could possibly fix things so that they were on a boundary, on break things
so that they weren't. But I don't see why that would crash. Does anybody
have any insight?
Btw, LNP is awesome!
--
"Do not go gentle into that good night.
Rage, rage against the dying of the light."
- Dylan Thomas
Mike Ash - <http://www.mikeash.com/>, <mailto:mail@mikeash.com>
|
|
Message has 1 Reply: | | Re: Strange crash (and possible fix)
|
| Mike- I wish I knew. I have frequently seen the same kinds of "random" changes produce better results. For example, I had one piece of code that used a switch statement- 19 statements in all. I added a 20th and poof... it froze. I have no idea what (...) (24 years ago, 14-Jul-00, to lugnet.robotics.rcx.legos)
|
3 Messages in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
|