Could you remind me how to set up a breakpoint with _ilc_fail_stop_here in Visual Studio. The documentation mentions that I "you must prefix an underscore to the name of the function, like this: _ilc_fail_stop_here "
Does it mean I have to rename a method foo() to _ilc_fail_stop_here_foo() ? I tried this and sets a breakpoint in cpext.h when extern "C" void ilc_fail_stop_here(); is defined. But the breakpoint is disabled with a message : possible cause "preprocessor directives or compiler/linker optimizations"
I remember not doing that while debugging CP code in Visual Studio. I do not know if that has something to do with the problem.
besides, since 12.3, pdb files seem missing for concert :
concert.lib(iloalg.obj) : warning LNK4099: PDB 'concert.pdb' was not found with 'c:\IBM\ILOG\CPLEX_Studio123\concert\lib\x86_windows_vs2008\stat_mda\concert.lib' or at 'c:\...\test\lib\Debug\concert.pdb'; linking object as if no debug info
This topic has been locked.
5 replies Latest Post - 2012-12-11T14:07:55Z by davidoff
Pinned topic _ilc_fail_stop_here (MS Visual Studio)
Answered question This question has been answered.
Unanswered question This question has not been answered yet.
Updated on 2012-12-11T14:07:55Z at 2012-12-11T14:07:55Z by davidoff
ol 270002SRX753 PostsACCEPTED ANSWER
Re: _ilc_fail_stop_here (MS Visual Studio)2012-11-20T10:02:03Z in response to davidoffHello David,
ilc_fail_stop_here has been renamed as ilccpo_fail_stop_here in order to make possible to use both CP and CPO in an application.
For more explanation, see an extract of the documentation below.
Using IBM ILOG CP and CP Optimizer
Describes how to create a C++ application which uses both products in the same executable.
Until this version, CP Optimizer shared many class and function names with IBM® ILOG® CP: mostly those with an Ilc prefix and solely within the Solver component. This name sharing was done to ease porting of an IBM ILOG CP application to IBM ILOG CP Optimizer.
With this release of IBM ILOG CP Optimizer and IBM ILOG CP, you can now create a C++ application which uses both products in the same executable, allowing you to evolve your IBM ILOG CP application by adding new modules using IBM ILOG CP Optimizer.
We have renamed symbols in IBM ILOG CP Optimizer to avoid any clashes with those in IBM ILOG CP. Renaming from IlcXXX to IlcCPOXXX has been performed on internal and documented symbol names (for example IlcIntVar has become IlcCPOIntVar in IBM ILOG CP Optimizer). In order to maintain compatibility in the vast majority of cases, IBM ILOG CP Optimizer contains #define statements which will transform, for example, IlcIntVar into IlcCPOIntVar in your programs. We recommend that you continue to use IlcIntVar inside CP Optimizer for new developments. A full list of defines which affect documented CP Optimizer classes or functions is given at the end of this text.
One symbol which cannot be #defined is ilc_fail_stop_here, as it is used only in the debugger and not at compile time. This symbol has been renamed ilccpo_fail_stop_here.
Finally, it should be noted that although IBM ILOG CP Optimizer and IBM ILOG CP can be linked together in the same executable, code segments using the two different products cannot coexist in the same source file. Thus, in your application, each source file must use at most one of IBM ILOG CP and IBM ILOG CP Optimizer. In particular, you should never include, either directly or indirectly, header files from both products in the same source file.
SystemAdmin 110000D4XK554 PostsACCEPTED ANSWER
Re: _ilc_fail_stop_here (MS Visual Studio)2012-11-20T10:34:14Z in response to davidoffHi David,
We do not provide the .pbd files as they contain to much information about the source code. The debug libraries are provided not for tracing the products but to be able to link with third-party libraries that are in debug mode.
Re: _ilc_fail_stop_here (MS Visual Studio)2012-11-20T13:10:52Z in response to SystemAdminin cpext.h, we still have the definition
extern "C" void ilc_fail_stop_here();
Now, what shall we do in practice to set a breakpoint in Visual Studio ? Set a breakpoint in the disassembly code does not seem to work.
SystemAdmin 110000D4XK554 PostsACCEPTED ANSWER
Re: _ilc_fail_stop_here (MS Visual Studio)2012-11-22T15:41:58Z in response to davidoffThe regular way to proceed is to go into Debug > New Breakpoint > Break at Function and then enter _ilcpo_fail_stop_here as the function name. Then a run of you example will stop at this function call at the firt fail ure encountered.
Re: _ilc_fail_stop_here (MS Visual Studio)2012-12-11T14:07:55Z in response to SystemAdminThanks Philippe,
It works fine now (for some reasons, this breakpoint was not accessible in my previous compilations, e.g it was possible to define it, but the breakpoint was marked as "not reachable")