Hi, Its going to be a little difficult to help without a complete example to look at. For instance I would want to see exact how Exception is defined and exactly what is in the struct you are effectively casting it to (the cast looks suspicious to me, I have to say).
I would suggest you first try and create a small stand-alone example of the issue. It will then be much easier to offer help. Chris > On 10 Sep 2018, at 5:46 pm, David <[email protected]> wrote: > > The interesting thing is that the same code, compiled with the same > compiler (gcc-mp-7 7.2) works just fine on 10.10. This doesn't happen on > every throw, just one in particular. > > While not a bug (necessarily) I'm looking for some guidance on where to > look to track down the differences in the throw operation between the two > OS releases. Any assistance would be useful. > > The following code is the specific location where the SIGABRT comes from. > We have pushed an exception into our stream and when we detect it we > reformat the payload and throw it for a higher layer to capture and > report. The contents of the payload matches the class Exception. Exception > contains only POD members. > > if ( m_packet->io.cmd_code == CmdAbort ) > throw *(Exception*)m_packet->io.payload; > > The code throws exceptions in multiple other locations, and those all work > as expected. > > Again, any hints would be very useful. > > David >
