Topic
  • 5 replies
  • Latest Post - ‏2012-12-11T14:07:55Z by davidoff
davidoff
davidoff
5 Posts

Pinned topic _ilc_fail_stop_here (MS Visual Studio)

‏2012-11-15T11:27:40Z |
Hello

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

Thanks

David
Updated on 2012-12-11T14:07:55Z at 2012-12-11T14:07:55Z by davidoff
  • ol
    ol
    59 Posts

    Re: _ilc_fail_stop_here (MS Visual Studio)

    ‏2012-11-20T10:02:03Z  
    Hello 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.
    Regards,
    ol


    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
    SystemAdmin
    554 Posts

    Re: _ilc_fail_stop_here (MS Visual Studio)

    ‏2012-11-20T10:34:14Z  
    Hi 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.

    Regards

    Philippe
  • davidoff
    davidoff
    5 Posts

    Re: _ilc_fail_stop_here (MS Visual Studio)

    ‏2012-11-20T13:10:52Z  
    Hi 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.

    Regards

    Philippe
    in 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.

    thanks

    David
  • SystemAdmin
    SystemAdmin
    554 Posts

    Re: _ilc_fail_stop_here (MS Visual Studio)

    ‏2012-11-22T15:41:58Z  
    • davidoff
    • ‏2012-11-20T13:10:52Z
    in 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.

    thanks

    David
    The 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.

    Philippe
  • davidoff
    davidoff
    5 Posts

    Re: _ilc_fail_stop_here (MS Visual Studio)

    ‏2012-12-11T14:07:55Z  
    The 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.

    Philippe
    Thanks 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")

    David