Compile in a Visual Studio break

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Compile in a Visual Studio break

Patricia Shanahan
I have given up on getting symbols throughout AOO. The build system
unfortunately ignores --enable-symbols for many, if not most, modules
and partial building and rebuilding are not working for me.

As a workaround, I have a hack for compiling in a break. Visual Studio
has options to take breaks on exceptions being thrown. It works even in
code that does not have symbols generated. This e-mail is to make it
available to anyone in the future having the same problem, including my
own future self.

Put these lines at the start of the module, near other includes:

#include <exception>
#define ps_report(e) {class e : std::exception{}; try{ throw
e();}catch(e){}}

At any point where you need a break, put

ps_report(arbitrary_identifier)

The arbitrary_identifier can be any string that meets the syntax
requirements for an identifier. Build AOO.

Before reaching the intended break, enable break on C++ exception in
Visual Studio. If the ps_report use is reached, Visual Studio will treat
it as a breakpoint. The arbitrary_identifier will be displayed as part
of the exception class name. The call stack is available. You can
continue from the breakpoint, and the program flow will be unchanged
because the catch cancels out the exception.

--
This email has been checked for viruses by AVG.
https://www.avg.com


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Compile in a Visual Studio break

Matthias Seidel
Hi Patricia,

Thank you for these informations.

I have archived your mail. Maybe some day I will be able to understand
the instructions. ;-)

Regards,

   Matthias

Am 15.06.20 um 14:03 schrieb Patricia Shanahan:

> I have given up on getting symbols throughout AOO. The build system
> unfortunately ignores --enable-symbols for many, if not most, modules
> and partial building and rebuilding are not working for me.
>
> As a workaround, I have a hack for compiling in a break. Visual Studio
> has options to take breaks on exceptions being thrown. It works even
> in code that does not have symbols generated. This e-mail is to make
> it available to anyone in the future having the same problem,
> including my own future self.
>
> Put these lines at the start of the module, near other includes:
>
> #include <exception>
> #define ps_report(e) {class e : std::exception{}; try{ throw
> e();}catch(e){}}
>
> At any point where you need a break, put
>
> ps_report(arbitrary_identifier)
>
> The arbitrary_identifier can be any string that meets the syntax
> requirements for an identifier. Build AOO.
>
> Before reaching the intended break, enable break on C++ exception in
> Visual Studio. If the ps_report use is reached, Visual Studio will
> treat it as a breakpoint. The arbitrary_identifier will be displayed
> as part of the exception class name. The call stack is available. You
> can continue from the breakpoint, and the program flow will be
> unchanged because the catch cancels out the exception.
>


smime.p7s (5K) Download Attachment