Hi !
I've just installed code::block bundled with mingw.
To test the compiler/debugger tools, I've compiled this snippet :
#include <tchar.h>
#include <memory.h> // for memset
#include <string>
using namespace std;
const unsigned kuiConfigFileNameMaxLength = 128;
int _tmain(int argc, _TCHAR* argv[])
{
int iErr = 0;
char cConfigFileName [kuiConfigFileNameMaxLength];
memset( (void*)cConfigFileName , 0, kuiConfigFileNameMaxLength );
// Get input file name
if ( strlen( (const char *) argv[1] ) > kuiConfigFileNameMaxLength )
{
iErr = 1;
}
else
{
memcpy( (void*)cConfigFileName, (const void*)argv[1], strlen( (const char *) argv[1] ));
}
string strConfigFileName( (const char*)(cConfigFileName), strlen( (const char *)cConfigFileName) );
return iErr;
}
While debugging, the program crahses @ line :
if ( strlen( (const char *) argv[1] ) > kuiConfigFileNameMaxLength )
Here the debugger messages :
Program received signal SIGSEGV, Segmentation fault.
In std::string::c_str() const () ()
Program received signal SIGSEGV, Segmentation fault.
Still, this works perfectly when compiled with Visual Studio.
Any hints ?
Regards
Sylvain
@ Tim
When I try to compile using MS Visual 2010 compilation - link - run is ok
When I try to compile using MS Visual 2010 tools hooked up to C::B, it fails complaining :
cl.exe /nologo /Zi /Zi /I..\..\..\CommonIncludes /I"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include" /c BuildCrocusCfgFile.cpp /FoDebug\BuildCrocusCfgFile.o
link.exe /nologo /LIBPATH:"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib" /out:Debug\BuildCrocusCfgFile.exe Debug\BuildCrocusCfgFile.o /DEBUG /DEBUG /DEBUG
BuildCrocusCfgFile.cpp
BuildCrocusCfgFile.cpp(4) : fatal error C1083: Cannot open include file: 'tchar.h': No such file or directory
Process terminated with status 2 (0 minutes, 0 seconds)
1 errors, 0 warnings (0 minutes, 0 seconds)
@ Jens
Here the snapshot :
Building to ensure sources are up-to-date
Selecting target:
Debug Win32
Adding source dir: S:\svn\ALICE\windows\codeBlockTst1\
Adding source dir: S:\svn\ALICE\windows\codeBlockTst1\
Adding file: S:\svn\ALICE\windows\codeBlockTst1\Debug\BuildCrocusCfgFile.exe
Changing directory to: S:/svn/ALICE/windows/codeBlockTst1/.
Set variable: PATH=.;C:\Program Files (x86)\CodeBlocks\MinGW\bin;C:\Program Files (x86)\CodeBlocks\MinGW;C:\Windows\System32;C:\Windows;C:\Windows\System32\wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Program Files\Intel\WiFi\bin;C:\Program Files\Common Files\Intel\WirelessCommon;C:\Program Files\WIDCOMM\Bluetooth Software;C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;C:\Program Files\TortoiseSVN\bin;C:\Program Files\MATLAB\R2011a\runtime\win64;C:\Program Files\MATLAB\R2011a\bin;C:\Program Files (x86)\MKVToolNix
[debug]Command-line: C:\Program Files (x86)\CodeBlocks\MINGW\bin\gdb.exe -nx -fullname -quiet -args S:/svn/ALICE/windows/codeBlockTst1/Debug/BuildCrocusCfgFile.exe
[debug]Working dir : S:\svn\ALICE\windows\codeBlockTst1
Starting debugger: C:\Program Files (x86)\CodeBlocks\MINGW\bin\gdb.exe -nx -fullname -quiet -args S:/svn/ALICE/windows/codeBlockTst1/Debug/BuildCrocusCfgFile.exe
done
[debug]> set prompt >>>>>>cb_gdb:
Registered new type: wxString
Registered new type: STL String
Registered new type: STL Vector
Setting breakpoints
[debug]Reading symbols from S:\svn\ALICE\windows\codeBlockTst1\Debug\BuildCrocusCfgFile.exe...done.
[debug](gdb) >>>>>>cb_gdb:
[debug]> show version
[debug]GNU gdb (GDB) 7.5
[debug]Copyright (C) 2012 Free Software Foundation, Inc.
[debug]License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
[debug]This is free software: you are free to change and redistribute it.
[debug]There is NO WARRANTY, to the extent permitted by law. Type "show copying"
[debug]and "show warranty" for details.
[debug]This GDB was configured as "i686-pc-mingw32".
[debug]For bug reporting instructions, please see:
[debug]<http://www.gnu.org/software/gdb/bugs/>.
[debug]>>>>>>cb_gdb:
[debug]> set confirm off
Debugger name and version: GNU gdb (GDB) 7.5
[debug]>>>>>>cb_gdb:
[debug]> set width 0
[debug]>>>>>>cb_gdb:
[debug]> set height 0
[debug]>>>>>>cb_gdb:
[debug]> set breakpoint pending on
[debug]>>>>>>cb_gdb:
[debug]> set print asm-demangle on
[debug]>>>>>>cb_gdb:
[debug]> set unwindonsignal on
[debug]>>>>>>cb_gdb:
[debug]> set print elements 0
[debug]>>>>>>cb_gdb:
[debug]> set new-console on
[debug]>>>>>>cb_gdb:
[debug]> set disassembly-flavor att
[debug]>>>>>>cb_gdb:
[debug]> catch throw
[debug]Catchpoint 1 (throw)
[debug]>>>>>>cb_gdb:
[debug]> source C:\Program Files (x86)\CodeBlocks\share\codeblocks/scripts/stl-views-1.0.3.gdb
[debug]>>>>>>cb_gdb:
[debug]> directory S:/svn/ALICE/windows/codeBlockTst1/
[debug]Source directories searched: S:/svn/ALICE/windows/codeBlockTst1;$cdir;$cwd
[debug]>>>>>>cb_gdb:
[debug]> break "S:/svn/ALICE/windows/codeBlockTst1/BuildCrocusCfgFile.cpp:19"
[debug]Breakpoint 2 at 0x4013b3: file S:\svn\ALICE\windows\codeBlockTst1\BuildCrocusCfgFile.cpp, line 19.
[debug]>>>>>>cb_gdb:
[debug]> run
[debug]Starting program: S:\svn\ALICE\windows\codeBlockTst1\Debug\BuildCrocusCfgFile.exe
Child process PID: 6796
[debug][New Thread 6796.0x1b5c]
[debug]Breakpoint 2, main (argc=1, argv=0x352a50) at S:\svn\ALICE\windows\codeBlockTst1\BuildCrocusCfgFile.cpp:19
[debug]S:\svn\ALICE\windows\codeBlockTst1\BuildCrocusCfgFile.cpp:19:450:beg:0x4013b3
[debug]>>>>>>cb_gdb:
At S:\svn\ALICE\windows\codeBlockTst1\BuildCrocusCfgFile.cpp:19
[debug]> bt 30
[debug]#0 main (argc=1, argv=0x352a50) at S:\svn\ALICE\windows\codeBlockTst1\BuildCrocusCfgFile.cpp:19
[debug]>>>>>>cb_gdb:
[debug]> next
[debug]Program received signal SIGSEGV, Segmentation fault.
[debug]0x76c643f9 in strlen () from C:\Windows\syswow64\msvcrt.dll
[debug]>>>>>>cb_gdb:
Program received signal SIGSEGV, Segmentation fault.
In strlen () (C:\Windows\syswow64\msvcrt.dll)
[debug]> bt 30
[debug]#0 0x76c643f9 in strlen () from C:\Windows\syswow64\msvcrt.dll
[debug]#1 0x004013c9 in main (argc=1, argv=0x352a50) at S:\svn\ALICE\windows\codeBlockTst1\BuildCrocusCfgFile.cpp:19
[debug]>>>>>>cb_gdb:
[debug]> frame 1
[debug]#1 0x004013c9 in main (argc=1, argv=0x352a50) at S:\svn\ALICE\windows\codeBlockTst1\BuildCrocusCfgFile.cpp:19
[debug]S:\svn\ALICE\windows\codeBlockTst1\BuildCrocusCfgFile.cpp:19:450:beg:0x4013c9
[debug]>>>>>>cb_gdb:
#1 0x004013c9 in main (argc=1, argv=0x352a50) at S:\svn\ALICE\windows\codeBlockTst1\BuildCrocusCfgFile.cpp:19
S:\svn\ALICE\windows\codeBlockTst1\BuildCrocusCfgFile.cpp:19:450:beg:0x4013c9
At S:\svn\ALICE\windows\codeBlockTst1\BuildCrocusCfgFile.cpp:19
[debug]> bt 30
[debug]#0 0x76c643f9 in strlen () from C:\Windows\syswow64\msvcrt.dll
[debug]#1 0x004013c9 in main (argc=1, argv=0x352a50) at S:\svn\ALICE\windows\codeBlockTst1\BuildCrocusCfgFile.cpp:19
[debug]>>>>>>cb_gdb:
[debug]> frame 1
[debug]#1 0x004013c9 in main (argc=1, argv=0x352a50) at S:\svn\ALICE\windows\codeBlockTst1\BuildCrocusCfgFile.cpp:19
[debug]S:\svn\ALICE\windows\codeBlockTst1\BuildCrocusCfgFile.cpp:19:450:beg:0x4013c9
[debug]>>>>>>cb_gdb:
#1 0x004013c9 in main (argc=1, argv=0x352a50) at S:\svn\ALICE\windows\codeBlockTst1\BuildCrocusCfgFile.cpp:19
S:\svn\ALICE\windows\codeBlockTst1\BuildCrocusCfgFile.cpp:19:450:beg:0x4013c9
[debug]> next
[debug]Single stepping until exit from function strlen,
[debug]which has no line number information.
[debug]Program received signal SIGSEGV, Segmentation fault.
[debug]0x76c643f9 in strlen () from C:\Windows\syswow64\msvcrt.dll
[debug]>>>>>>cb_gdb:
Program received signal SIGSEGV, Segmentation fault.
In strlen () (C:\Windows\syswow64\msvcrt.dll)
[debug]> bt 30
[debug]#0 0x76c643f9 in strlen () from C:\Windows\syswow64\msvcrt.dll
[debug]#1 0x004013c9 in main (argc=1, argv=0x352a50) at S:\svn\ALICE\windows\codeBlockTst1\BuildCrocusCfgFile.cpp:19
[debug]>>>>>>cb_gdb:
[debug]> frame 1
[debug]#1 0x004013c9 in main (argc=1, argv=0x352a50) at S:\svn\ALICE\windows\codeBlockTst1\BuildCrocusCfgFile.cpp:19
[debug]S:\svn\ALICE\windows\codeBlockTst1\BuildCrocusCfgFile.cpp:19:450:beg:0x4013c9
[debug]>>>>>>cb_gdb:
#1 0x004013c9 in main (argc=1, argv=0x352a50) at S:\svn\ALICE\windows\codeBlockTst1\BuildCrocusCfgFile.cpp:19
S:\svn\ALICE\windows\codeBlockTst1\BuildCrocusCfgFile.cpp:19:450:beg:0x4013c9
At S:\svn\ALICE\windows\codeBlockTst1\BuildCrocusCfgFile.cpp:19
[debug]> bt 30
[debug]#0 0x76c643f9 in strlen () from C:\Windows\syswow64\msvcrt.dll
[debug]#1 0x004013c9 in main (argc=1, argv=0x352a50) at S:\svn\ALICE\windows\codeBlockTst1\BuildCrocusCfgFile.cpp:19
[debug]>>>>>>cb_gdb:
[debug]> frame 1
[debug]#1 0x004013c9 in main (argc=1, argv=0x352a50) at S:\svn\ALICE\windows\codeBlockTst1\BuildCrocusCfgFile.cpp:19
[debug]S:\svn\ALICE\windows\codeBlockTst1\BuildCrocusCfgFile.cpp:19:450:beg:0x4013c9
[debug]>>>>>>cb_gdb:
#1 0x004013c9 in main (argc=1, argv=0x352a50) at S:\svn\ALICE\windows\codeBlockTst1\BuildCrocusCfgFile.cpp:19
S:\svn\ALICE\windows\codeBlockTst1\BuildCrocusCfgFile.cpp:19:450:beg:0x4013c9
[debug]> next
[debug]Single stepping until exit from function strlen,
[debug]which has no line number information.
Many thanks for your support.
Sylvain