Re: Unable to catch Gdk::PixbufError



@Mohammed: Sorry for the double-post..

What could help is setting a breakpoint on 'throw'.

This is a little tricky inside gdb, at least i haven't figured out a better way than this one:

- Load the app into gdb
- Start it up one time, or at least let the linker assemble it and then break with CTRL+C (you will most likely not catch the exact point of when execution starts but that's really irrelevant, see next step)
- Enter as command into gdb 'catch throw'
- Then restart the app (*still inside gdb*), and produce the exception

This gives usually helpful backtraces with exceptions. The reason I've said it's tricky is because usually it should be possible to resolve the symbol 'throw' inside libstdc++ normally by preloading the lib into gdb (there's some command inside gdb to preload shared libs), but in practice i have never managed yet to do that, it will load about any library yet not libstdc++ (but i remember it should be theoretically possible, so go figure but the way above works).

-- Milosz


2007/11/20, Mohammed Sameer <msameer foolab org>:
On Tue, Nov 20, 2007 at 04:42:43PM +0100, Murray Cumming wrote:
> On Tue, 2007-11-20 at 17:17 +0200, Mohammed Sameer wrote:
> > On Tue, Nov 20, 2007 at 08:17:36AM +0100, Murray Cumming wrote:
> > >
> > > On Mon, 2007-11-19 at 23:26 +0200, Mohammed Sameer wrote:
> > > > On Mon, Nov 19, 2007 at 07:59:05PM +0100, J B C Engelen ewi utwente nl wrote:
> > > > > Ah ofcourse, sorry. Run Inkscape, and open the "file"->"open..." dialog.
> > > > > The code tries to show a preview of the selected file in the file
> > > > > dialog. Selecting an invalid file (e.g. a 0 byte .jpg file) will throw
> > > > > the exception that is not caught.
> > > >
> > > >
> > > > The only problem is I couldn't reproduce it!!
> > > > I did touch /tmp/foo.jpg
> > > >
> > > > But the exception was caught:
> > > > ** Message: Gdk::PixbufError in SVGPreview::showImage
> > >
> > > JBC, are you using some strange distro? Gentoo maybe? Are you mixing
> > > compiler versions?
> >
> > Can this happen if we compile with -fno-exceptions (Or whatever the flag is) ?
>
> I don't see how it could throw exceptions if -fno-exceptions is used,
> but I guess that an exception might not reach the try/catch if one of
> the libraries was built without -fno-exceptions.
>
> But none of the *mm libraries should build if you use -fno-exceptions
> without using the special --disable-api-exceptios build option, which
> changes the API slightly. You haven't done that.

I'm not having this problem. I'm only trying to guess ;-)

--
GPG-Key: 0xA3FD0DF7 - 9F73 032E EAC9 F7AD 951F  280E CB66 8E29 A3FD 0DF7
Debian User and Developer.
Homepage: www.foolab.org

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFHQwR/y2aOKaP9DfcRAn08AKClOyL9hi0I9zyxjdw+u9fxh/BsZwCfQ/+m
5lxhMXUmM+Z5PaFD4v+dtc8=
=E+El
-----END PGP SIGNATURE-----

_______________________________________________
gtkmm-list mailing list
gtkmm-list gnome org
http://mail.gnome.org/mailman/listinfo/gtkmm-list




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]