Re: Release build seg faults at vector.push_back above certain size, b
From: Severian (severian_at_chlamydia-is-not-a-flower.com)
Date: 03/16/05
- Next message: Matias Woloski: "from VC++ to C# translation - newbie"
- Previous message: Arnaud Debaene: "Re: virtual inheritance question"
- In reply to: whocares: "Release build seg faults at vector.push_back above certain size, b"
- Next in thread: whocares: "Re: Release build seg faults at vector.push_back above certain siz"
- Reply: whocares: "Re: Release build seg faults at vector.push_back above certain siz"
- Messages sorted by: [ date ] [ thread ]
Date: Wed, 16 Mar 2005 17:34:05 GMT
On Wed, 16 Mar 2005 08:15:05 -0800, "whocares"
<whocares@discussions.microsoft.com> wrote:
>hi everyone.
>
>i'm currently experiencing a strange problem under vc++ 2005 express. i hope
>someone has a hint for me, i'm kind of lost atm.
>
>i'm using a vectors of pointers in my code.
>using the release build i can add and remove elements aslong as i stay below
>a certain vector size (13 in this case, no joke). as soon as the vector tries
>to add element 14 i get a runtime error.
>
>the whole thing get's really strange when i use the debug build. i can add
>as much elements as i want without any problems (tried above 500). but that's
>not all. it works with the debug build aslong as i start from the IDE or if i
>doubleclick the debug.exe. it will crash with the same error as the release
>build when i start it from a cmd prompt (just one push_back earlier)
>
>i have no clue what to do now. i can't debug cause the debug build works.
>inserting some debug msgs show that vector.push_back() seems to trigger the
>crash...
>
>suggestions more than welcome
Running a debugger introduces extra data and code pages into your
process. So while the debugger is active, you're probably overwriting
some non-critical debug information, or reading some debug info or
code using invalid pointers.
My initial guess is that you're releasing a pointer while it's still
part of a vector and it's being reaccessed later.
To help during the build, set the warning level to 4 (/W4) and define
STRING (-DSTRICT) to detect some coding errors. Do not ignore any
warning unless you understand *exactly* why it can be ignored.
For running (debug or not), be sure all run-time checks are enabled.
Two other things that may help:
1) ero any pointer after you release it:
delete[] ptr;
ptr = NULL;
2) When declaring pointers, always initialize them to null:
OBJECT *ptr = NULL;
Good luck!
-- Sev
- Next message: Matias Woloski: "from VC++ to C# translation - newbie"
- Previous message: Arnaud Debaene: "Re: virtual inheritance question"
- In reply to: whocares: "Release build seg faults at vector.push_back above certain size, b"
- Next in thread: whocares: "Re: Release build seg faults at vector.push_back above certain siz"
- Reply: whocares: "Re: Release build seg faults at vector.push_back above certain siz"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|