I made a debug on MacOs with Xcode (after fixing the compile error). rexximage(30751,0x10075b380) malloc: *** error for object 0x101801800: pointer being freed was not allocated #0 0x00007fff7b350b66 in __pthread_kill () #1 0x00000001007540f0 in pthread_kill () #2 0x00007fff7b2ac1ae in abort () #3 0x00007fff7b3aa822 in free () #4 0x00000001003ccf2c in FileNameBuffer::~FileNameBuffer() at /local/rexx/oorexx/official/sandbox/rick/rexxutil/interpreter/memory/FileNameBuffer.hpp:60 #5 0x00000001003ca505 in FileNameBuffer::~FileNameBuffer() at /local/rexx/oorexx/official/sandbox/rick/rexxutil/interpreter/memory/FileNameBuffer.hpp:57 #6 0x000000010044c10d in InterpreterInstance::resolveProgramName(RexxString*, RexxString*, RexxString*) at /local/rexx/oorexx/official/sandbox/rick/rexxutil/interpreter/runtime/InterpreterInstance.cpp:1085 #7 0x00000001003e3831 in Activity::resolveProgramName(RexxString*, RexxString*, RexxString*) at /local/rexx/oorexx/official/sandbox/rick/rexxutil/interpreter/concurrency/Activity.cpp:3400 #8 0x00000001003c7b79 in MemoryObject::createImage() at /local/rexx/oorexx/official/sandbox/rick/rexxutil/interpreter/memory/Setup.cpp:1700 #9 0x00000001003c80cd in MemoryObject::initialize(bool) at /local/rexx/oorexx/official/sandbox/rick/rexxutil/interpreter/memory/RexxMemory.cpp:200 #10 0x00000001004484a9 in Interpreter::startInterpreter(Interpreter::InterpreterStartupMode) at /local/rexx/oorexx/official/sandbox/rick/rexxutil/interpreter/runtime/Interpreter.cpp:155 #11 0x0000000100371beb in ::RexxCreateInterpreterImage() at /local/rexx/oorexx/official/sandbox/rick/rexxutil/interpreter/api/InterpreterAPI.cpp:93 #12 0x0000000100001f84 in main at /local/rexx/oorexx/official/sandbox/rick/rexxutil/utilities/rexximage/rexximage.cpp:44 #13 0x00007fff7b200015 in start () Then during further investigation, I noticed other things to fix (probably already fixed locally in your sandbox) FileNameBuffer.hpp : replace memcmp by memcpy where appropriate (2 occurrences) unix/SysInterpreterInstance.hpp : replace ‘;’ by ‘:’ where appropriate (2 occurrences) After fixing that and adding the copy constructor & operator, I was able to build your sandbox, and the resulting rexx executable is working. To check if the copy constructor & operator is really needed, you can declare them private. You will have some compilation errors, it’s a good way to see where the compiler creates temporary objects for FileNameBuffer |
changes_applied.patch
Description: Binary data
|
_______________________________________________ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel