Author Topic: GDB Cannot Debug Binary Generated with cl.exe - link.exe ?!?  (Read 5799 times)

Offline sylwa

  • Multiple posting newcomer
  • *
  • Posts: 12
GDB Cannot Debug Binary Generated with cl.exe - link.exe ?!?
« on: March 15, 2013, 02:20:16 pm »

Hi Dears,

GDB fails to trace a snippet compiled with MS Visual compilation tool chain.
May I ask you some hints ?

I smoothly generate my binary providing proper flags to compiler and linker in order to make them generate the symbols :


Code
-------------- Clean: Dbg MS Visual in BuildCrocusCfgFile (compiler: Microsoft Visual C++ 2010)---------------

Cleaned "BuildCrocusCfgFile - Dbg MS Visual"

-------------- Build: Dbg MS Visual in BuildCrocusCfgFile (compiler: Microsoft Visual C++ 2010)---------------

cl.exe /nologo  /GR /Od /Zi  /EHc /EHs   /I..\..\..\CommonIncludes /IE:\MSVisualStudio10\VC\include  /c BuildCrocusCfgFile.cpp /Fo.objs\BuildCrocusCfgFile.obj
link.exe /nologo /LIBPATH:E:\MSVisualStudio10\VC\lib /LIBPATH:"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib"  /out:MSDbg\BuildCrocusCfgFile.exe  .objs\BuildCrocusCfgFile.obj   /DEBUG
BuildCrocusCfgFile.cpp
LINK : MSDbg\BuildCrocusCfgFile.exe not found or not built by the last incremental link; performing full link
Output size is 253.50 KB
Process terminated with status 0 (0 minutes, 1 seconds)
0 errors, 0 warnings (0 minutes, 1 seconds)

then I try to debug with GDB but nothing happens, even worse, GDb complains about symbol absence :


Code
Building to ensure sources are up-to-date
Selecting target:
Dbg MS Visual
Adding source dir: S:\svn\ALICE\windows\codeBlock\codeBlockTst2\
Adding source dir: S:\svn\ALICE\windows\codeBlock\codeBlockTst2\
Adding file: S:\svn\ALICE\windows\codeBlock\codeBlockTst2\MSDbg\BuildCrocusCfgFile.exe
Changing directory to: S:/svn/ALICE/windows/codeBlock/codeBlockTst2/.
Set variable: PATH=.;E:\MSVisualStudio10\VC\bin;E:\MSVisualStudio10\VC;E:\MSVisualStudio10\Common7\IDE;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/codeBlock/codeBlockTst2/MSDbg/BuildCrocusCfgFile.exe
[debug]Working dir : S:\svn\ALICE\windows\codeBlock\codeBlockTst2

Starting debugger: C:\Program Files (x86)\CodeBlocks\MINGW\bin\gdb.exe -nx -fullname  -quiet  -args S:/svn/ALICE/windows/codeBlock/codeBlockTst2/MSDbg/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\codeBlock\codeBlockTst2\MSDbg\BuildCrocusCfgFile.exe...(no debugging symbols found)...done.
[debug](gdb) >>>>>>cb_gdb:
[debug]> show version

Reading symbols from S:\svn\ALICE\windows\codeBlock\codeBlockTst2\MSDbg\BuildCrocusCfgFile.exe...(no debugging symbols found)...done.

[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]No symbol table is loaded.  Use the "file" command.
[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/codeBlock/codeBlockTst2/
[debug]Source directories searched: S:/svn/ALICE/windows/codeBlock/codeBlockTst2;$cdir;$cwd
[debug]>>>>>>cb_gdb:
[debug]> set args S:\svn\ALICE\LC2\data\ldMarc_example.dat
[debug]>>>>>>cb_gdb:
[debug]> break "S:/svn/ALICE/windows/codeBlock/codeBlockTst2/BuildCrocusCfgFile.cpp:61"
[debug]No symbol table is loaded.  Use the "file" command.
[debug]Breakpoint 2 ("S:/svn/ALICE/windows/codeBlock/codeBlockTst2/BuildCrocusCfgFile.cpp:61") pending.
[debug]>>>>>>cb_gdb:
[debug]> run
[debug]Starting program: S:\svn\ALICE\windows\codeBlock\codeBlockTst2\MSDbg\BuildCrocusCfgFile.exe S:\svn\ALICE\LC2\data\ldMarc_example.dat

Child process PID: 3784

[debug][New Thread 3784.0x1610]
[debug][Inferior 1 (process 3784) exited with code 037777777772]
[debug]>>>>>>cb_gdb:

[Inferior 1 (process 3784) exited with code 037777777772]

[debug]> quit

Debugger finished with status 0

Cheers !

Sylvain

zabzonk

  • Guest
Re: GDB Cannot Debug Binary Generated with cl.exe - link.exe ?!?
« Reply #1 on: March 15, 2013, 02:43:19 pm »
You can't debug the output of the MS compiler/linker with gdb, any more than you can debug the output of GCC with the MS debugger - the debug info formats are completely different.

Offline sylwa

  • Multiple posting newcomer
  • *
  • Posts: 12
Re: GDB Cannot Debug Binary Generated with cl.exe - link.exe ?!?
« Reply #2 on: March 15, 2013, 02:50:02 pm »
Ok Neil, it's clear now.
thanks for your help.