Student requires urgent help! Debug Assertion Failed error

Discussion in 'C++' started by Cormac, Apr 6, 2004.

  1. Cormac

    Cormac Guest

    Hi everyone,

    I'm writing Pure Data externals in C++ using Ms Visual C++ 7.0 and
    Windows2000. I'm running motions sensor hardware so there's a bit of
    real time data processing involved.

    When I'm running my objects in Pure Data, I get an assertion failure
    after a few seconds of running the motion sensors and I can't seem to
    get rid of it. The error occurs in the expression _CrtCheckMemory().
    Could anyone provide some possible solutions?

    Many thanks,
    Cormac
    Cormac, Apr 6, 2004
    #1
    1. Advertising

  2. Uzytkownik "Cormac" <> napisal w wiadomosci
    news:...
    > Hi everyone,
    >
    > I'm writing Pure Data externals in C++ using Ms Visual C++ 7.0 and
    > Windows2000. I'm running motions sensor hardware so there's a bit of
    > real time data processing involved.
    >
    > When I'm running my objects in Pure Data, I get an assertion failure
    > after a few seconds of running the motion sensors and I can't seem to
    > get rid of it. The error occurs in the expression _CrtCheckMemory().
    > Could anyone provide some possible solutions?


    You overwrite memory somewhere in your code. _CrtCheckMemory() in debug
    builds of VC++ 7.0 checks the consistency of the heap. Because it asserts -
    the heap is corrupt. The assertion message probably contains more detailed
    information - i.e. where the corruption occured (but not when). In general,
    tracking down this kind of bug is hard, and this is probably one of the
    worst symptoms of bug you can have in C++. It's sometimes called CoreWars
    :).

    It can be caused by writing outside an array, by using members of object
    that has been deleted (common cause), by deleting object more than once, and
    by multitude of other "undefined behavior" actions that you can do in C++.

    I suggest you quickly review the code that you recently changed to determine
    if you haven't introduced any pointer-related bugs. If it does not help, you
    might try pinpointing down the exact address where the corruption occurs,
    and check the contents of corrupt memory. Usually it will contain rubbish
    (some pointers, floating point numbers etc.). You can try to identify that -
    for example if it is a floating point number or a C string - you may
    succeed. Then, you'll have a clue where to look for corruption source.

    If this fails, you can try setting a memory-access breakpoint in this place
    (Visual C++ 7.0 has this feature in IDE). You'll get debug break anytime the
    memory is changed. By enabling and disabling the breakpoint in "clever" way,
    provided that you have enough patience and time, you may pinpoint the moment
    where the memory is actually corrupt.

    <OT>
    If this fails, switch to Java or C# and rewrite the project :)
    </OT>

    Good luck,
    Marcin
    Marcin Kalicinski, Apr 6, 2004
    #2
    1. Advertising

  3. Cormac wrote:

    > Hi everyone,
    >
    > I'm writing Pure Data externals in C++ using Ms Visual C++ 7.0 and
    > Windows2000. I'm running motions sensor hardware so there's a bit of
    > real time data processing involved.
    >
    > When I'm running my objects in Pure Data, I get an assertion failure
    > after a few seconds of running the motion sensors and I can't seem to
    > get rid of it. The error occurs in the expression _CrtCheckMemory().
    > Could anyone provide some possible solutions?
    >
    > Many thanks,
    > Cormac


    My crystal ball says that your problem is on line 123 in the
    third source file. Fix that and all shall be well.

    Since my crystal ball may be wrong, post the minimal compilable and
    executable source code that recreates the problem. Other than that
    try using "print" statements to see where the memory leak is.

    --
    Thomas Matthews

    C++ newsgroup welcome message:
    http://www.slack.net/~shiva/welcome.txt
    C++ Faq: http://www.parashift.com/c -faq-lite
    C Faq: http://www.eskimo.com/~scs/c-faq/top.html
    alt.comp.lang.learn.c-c++ faq:
    http://www.raos.demon.uk/acllc-c /faq.html
    Other sites:
    http://www.josuttis.com -- C++ STL Library book
    Thomas Matthews, Apr 6, 2004
    #3
  4. Cormac wrote:

    > Hi everyone,
    >
    > I'm writing Pure Data externals in C++ using Ms Visual C++ 7.0 and
    > Windows2000. I'm running motions sensor hardware so there's a bit of
    > real time data processing involved.
    >
    > When I'm running my objects in Pure Data, I get an assertion failure
    > after a few seconds of running the motion sensors and I can't seem to
    > get rid of it. The error occurs in the expression _CrtCheckMemory().
    > Could anyone provide some possible solutions?
    >


    Short answer: You should have used standard containers instead of 'new'
    (although this can also happen if you mis-use containers -- a good
    debugging version of the standard containers helps).

    Explicit memory management is a bitch, and debugging the problems that
    arise from it is even worse.

    -Kevin
    --
    My email address is valid, but changes periodically.
    To contact me please use the address from a recent posting.
    Kevin Goodsell, Apr 6, 2004
    #4
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. SorceCode
    Replies:
    2
    Views:
    3,363
    Christian Jan├čen
    Jan 26, 2004
  2. w3r3w0lf

    debug assertion failed

    w3r3w0lf, Apr 15, 2004, in forum: C++
    Replies:
    2
    Views:
    2,558
    John Harrison
    Apr 15, 2004
  3. Kapt. Boogschutter

    Debug Assertion Failed! and no obvious Error

    Kapt. Boogschutter, Jun 23, 2004, in forum: C++
    Replies:
    1
    Views:
    594
    red floyd
    Jun 23, 2004
  4. Arti Potnis
    Replies:
    2
    Views:
    6,689
    Howard
    Sep 2, 2004
  5. badai
    Replies:
    0
    Views:
    1,519
    badai
    Feb 27, 2008
Loading...

Share This Page