User forums > Using Code::Blocks

strlen() fails when the code is compiled with mingw gcc

<< < (2/3) > >>

stahta01:
Try it with the Compiler that worked in the past; using the new CB.
Did it work or fail?

Tim S.

Jenna:
Can you turn on the debuggers debug log ("Settings -> Debugger -> Common -> Full (debug) log" and post the content of the debug log here ?

sylwa:

@ 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 :

--- Code: ---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)

--- End code ---


@ Jens

Here the snapshot :


--- Code: ---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.

--- End code ---

Many thanks for your support.

Sylvain

Jenna:

--- Quote from: jarod42 on March 13, 2013, 05:46:46 pm ---I would say that argv[1] is NULL.

--- End quote ---

--- Quote from: sylwa on March 13, 2013, 05:56:27 pm ---yes, I provided some non null string into argv[1].

--- End quote ---

--- Quote from: sylwa on March 13, 2013, 09:30:29 pm ---
--- Code: ---[...]
[debug]Starting program: S:\svn\ALICE\windows\codeBlockTst1\Debug\BuildCrocusCfgFile.exe
[...]

--- End code ---

--- End quote ---
There is no argument passed to the exe and therefore argv[1] is 0x0.
By the way, you should always ensure you do not have a nullpointer before accessing it.

sylwa:
Dear Jens,

Actually I had to rebuild a new projet from scratch after having set the compiler to MS visual for Tim test purpose since C::B mixed gcc and cl parameters.
Then, you're right, the last test I performed yesterday evening was conducted without filling argv[1].
This morning, I provided a string as argv[1] and it works.
As a consequence, I don't know why my very first test failed since I've double checked that argv[1] was properly set....

I gonna restart from the beginning : checkout my original MS visual mini project, convert it into C::B project and try to compile/debug it with mingw gcc.

Cheers !

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version