Note that there are some explanatory texts on larger screens.

plurals
  1. POWhy does MIcroQuill Smartheap throw "mem_bad_pointer" errors after I embed perl?
    primarykey
    data
    text
    <p>I am embedding perl in a C++ application that uses <a href="http://www.microquill.com/smartheap/index.html" rel="nofollow noreferrer">Smartheap</a>. Regardless of whether I compile the perl to use its own malloc or the system's I get a bunch of error mem___bad_pointer dialogs. It seems to work fine when I just click "ok" and ignore the errors, but obviously I need to actually solve the problem.</p> <p>Do I maybe need to compile SmartHeap into my perl build? Is that even feasible?</p> <p>Below is <a href="http://www.microquill.com/kb/docs/APPENDXB.html" rel="nofollow noreferrer">the only documentation</a> page about mem__bad_pointer's I could find, but I am no closer to solving the problem. I do not understand how or where perl and Smartheap are conflicting with each other. Any pointers appreciated.</p> <ul> <li>The pointer was allocated by a memory manager other than SmartHeap, such as from another DLL or EXE, or from the compiler runtime library. Examine your map file to see that the SmartHeap version of malloc, _fmalloc/farmalloc, or operator new is being linked in.</li> <li>The pointer is “wild” (uninitialized), is allocated on the stack (local variable), or is otherwise invalid.</li> <li>The pointer was previously freed. If SmartHeap has freed the page from which the pointer was originally allocated, SmartHeap won’t be able to detect that it’s a double free. However, SmartHeap will report the invalid pointer. Use dbgMemDeferFreeing to catch this type of bug.</li> <li>The pointer was incremented or decremented since the time of allocation.</li> <li>For 16-bit x86, the pointer was cast to a near pointer after allocation, in which case the segment portion of the pointer has been lost.</li> <li>The memory pool from which the pointer was allocated has been freed, or SmartHeap has been unregistered from the task.</li> <li>The task from which the pointer was allocated has terminated (see section B.4).</li> </ul>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload