Steve,

> I'm not sure if this error is yours or not, but I thought I'd bounce
> it off you.  I've copied the wxPerl list too. 
> 
> I have a modification in wx 2.8.11 to display Bitmap Headers and
> footers in RichText which has been working for a number of years that
> I am transferring to 3.0.1.  After a number of crashes, I have
> stripped the changes down to JUST the following in richtextprint.h (ie
> a declaration of 4 new variables, but they are never used by
> anything). 

>From this I get the impression that there might be a subtle change in the 
RichText code causing the problem in conjunction with wxPdfDocument.

> Which compiles without for both error in both 2.8.11 and 3.0.1,  in 
> 2.8.11 I have implemented a whole area of functionality around bitmap 
> headers and footers.  In 3.0.1, it compiles ok and then gives me a 
> runtime error:
> 
> *** Error in `/usr/bin/perl': malloc(): memory corruption: 
> 0x0000000004e939f0 ***
> Aborted (core dumped)
> 
> If I start gdb against the core dump I find:
> 
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
> Core was generated by `/usr/bin/perl -w /usr/local/bin/wxperl_demo.pl'.
> Program terminated with signal SIGABRT, Aborted.
> #0  0x00007fc1826f7bb9 in __GI_raise (sig=sig@entry=6) at 
> ../nptl/sysdeps/unix/sysv/linux/raise.c:56
> 56      ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
> 
> As the message says, there is no file called raise.c on my machine.
> 
> A quick Google shows suggests that there are a number of multi-threading 
> issues when running wxGTK and X11 on multiprocessor systems.
> 
> The sort of fix that is suggested is to insert something like the 
> following code:
> 
> #include <X11/Xlib.h>
> 
>          XInitThreads();
> 
> in main();
> 
> As there is no main in wxPdfDocument.cpp, I put it in the create method, 
> to no effect.

Somehow the memory gets corrupted ... and the cause for this can have 
happened much earlier by illegally overwriting a memory area. That is, I don't 
think your problem is related to threads.

> I can't guarantee that that PdfDoc is the culprit, but I'd value your
> opinion. 
> 
> Any suggestions gratefully received.

Well, the memory corruption could have occurred anywhere in your program. 
Such errors are quite difficult to track.

I have no experience with reading valgrind output, unfortunately. So, my 
comments below might be wrong or misleading.

Regards,

Ulrich

> $ valgrind perl /usr/local/bin/wxperl_demo.pl
> ==15605== Memcheck, a memory error detector
> ==15605== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
> ==15605== Using Valgrind-3.10.0.SVN and LibVEX; rerun with -h for 
> copyright info
> ==15605== Command: perl /usr/local/bin/wxperl_demo.pl
> ==15605==
> Subroutine new redefined at /usr/local/lib/perl/5.18.2/Wx/Timer.pm line 29.
> Subroutine DESTROY redefined at /usr/local/lib/perl/5.18.2/Wx/Timer.pm 
> line 40.
> Subroutine Start redefined at /usr/local/lib/perl/5.18.2/Wx/Timer.pm 
> line 46.
> ==15605== Invalid write of size 8

This looks suspicious. However, I don't know how to interpret this Valgrind 
message. There are a few more of such messages following.

> ==15605==    at 0x1D00CFEC: 
> wxRichTextPrintout::wxRichTextPrintout(wxString const&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_richtext-3.0.so.0.1.0)
> ==15605==    by 0x1EC63648: XS_Wx__RichTextPrintout_new(interpreter*, 
> cv*) (RichText.c:19049)
> ==15605==    by 0x4EF0865: Perl_pp_entersub (in /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x4EE8E85: Perl_runops_standard (in 
> /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x4E7A48F: Perl_call_sv (in /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x6FAE0CC: wxPliEventCallback::Handler(wxEvent&) 
> (e_cback.cpp:93)
> ==15605==    by 0x802882D: 
> wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, 
> wxEvent&) const (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BB11: 
> wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, 
> wxEvtHandler*, wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BE75: 
> wxEvtHandler::SearchDynamicEventTable(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BEFD: wxEvtHandler::TryHereOnly(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BF92: wxEvtHandler::ProcessEventLocally(wxEvent&) 
> (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BFF4: wxEvtHandler::ProcessEvent(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==  Address 0x12feae18 is 8 bytes after a block of size 560 alloc'd
> ==15605==    at 0x4C2B0E0: operator new(unsigned long) (in 
> /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==15605==    by 0x1EC6363A: XS_Wx__RichTextPrintout_new(interpreter*, 
> cv*) (RichText.c:19049)
> ==15605==    by 0x4EF0865: Perl_pp_entersub (in /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x4EE8E85: Perl_runops_standard (in 
> /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x4E7A48F: Perl_call_sv (in /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x6FAE0CC: wxPliEventCallback::Handler(wxEvent&) 
> (e_cback.cpp:93)
> ==15605==    by 0x802882D: 
> wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, 
> wxEvent&) const (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BB11: 
> wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, 
> wxEvtHandler*, wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BE75: 
> wxEvtHandler::SearchDynamicEventTable(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BEFD: wxEvtHandler::TryHereOnly(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BF92: wxEvtHandler::ProcessEventLocally(wxEvent&) 
> (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BFF4: wxEvtHandler::ProcessEvent(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==
> ==15605== Invalid write of size 4
> ==15605==    at 0x1D00CFF7: 
> wxRichTextPrintout::wxRichTextPrintout(wxString const&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_richtext-3.0.so.0.1.0)
> ==15605==    by 0x1EC63648: XS_Wx__RichTextPrintout_new(interpreter*, 
> cv*) (RichText.c:19049)
> ==15605==    by 0x4EF0865: Perl_pp_entersub (in /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x4EE8E85: Perl_runops_standard (in 
> /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x4E7A48F: Perl_call_sv (in /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x6FAE0CC: wxPliEventCallback::Handler(wxEvent&) 
> (e_cback.cpp:93)
> ==15605==    by 0x802882D: 
> wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, 
> wxEvent&) const (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BB11: 
> wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, 
> wxEvtHandler*, wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BE75: 
> wxEvtHandler::SearchDynamicEventTable(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BEFD: wxEvtHandler::TryHereOnly(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BF92: wxEvtHandler::ProcessEventLocally(wxEvent&) 
> (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BFF4: wxEvtHandler::ProcessEvent(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==  Address 0x12feae20 is 16 bytes after a block of size 560 alloc'd
> ==15605==    at 0x4C2B0E0: operator new(unsigned long) (in 
> /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==15605==    by 0x1EC6363A: XS_Wx__RichTextPrintout_new(interpreter*, 
> cv*) (RichText.c:19049)
> ==15605==    by 0x4EF0865: Perl_pp_entersub (in /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x4EE8E85: Perl_runops_standard (in 
> /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x4E7A48F: Perl_call_sv (in /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x6FAE0CC: wxPliEventCallback::Handler(wxEvent&) 
> (e_cback.cpp:93)
> ==15605==    by 0x802882D: 
> wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, 
> wxEvent&) const (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BB11: 
> wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, 
> wxEvtHandler*, wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BE75: 
> wxEvtHandler::SearchDynamicEventTable(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BEFD: wxEvtHandler::TryHereOnly(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BF92: wxEvtHandler::ProcessEventLocally(wxEvent&) 
> (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BFF4: wxEvtHandler::ProcessEvent(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==
> ==15605== Invalid write of size 4
> ==15605==    at 0x1D00D001: 
> wxRichTextPrintout::wxRichTextPrintout(wxString const&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_richtext-3.0.so.0.1.0)
> ==15605==    by 0x1EC63648: XS_Wx__RichTextPrintout_new(interpreter*, 
> cv*) (RichText.c:19049)
> ==15605==    by 0x4EF0865: Perl_pp_entersub (in /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x4EE8E85: Perl_runops_standard (in 
> /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x4E7A48F: Perl_call_sv (in /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x6FAE0CC: wxPliEventCallback::Handler(wxEvent&) 
> (e_cback.cpp:93)
> ==15605==    by 0x802882D: 
> wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, 
> wxEvent&) const (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BB11: 
> wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, 
> wxEvtHandler*, wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BE75: 
> wxEvtHandler::SearchDynamicEventTable(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BEFD: wxEvtHandler::TryHereOnly(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BF92: wxEvtHandler::ProcessEventLocally(wxEvent&) 
> (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BFF4: wxEvtHandler::ProcessEvent(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==  Address 0x12feae24 is 20 bytes after a block of size 560 alloc'd
> ==15605==    at 0x4C2B0E0: operator new(unsigned long) (in 
> /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==15605==    by 0x1EC6363A: XS_Wx__RichTextPrintout_new(interpreter*, 
> cv*) (RichText.c:19049)
> ==15605==    by 0x4EF0865: Perl_pp_entersub (in /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x4EE8E85: Perl_runops_standard (in 
> /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x4E7A48F: Perl_call_sv (in /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x6FAE0CC: wxPliEventCallback::Handler(wxEvent&) 
> (e_cback.cpp:93)
> ==15605==    by 0x802882D: 
> wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, 
> wxEvent&) const (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BB11: 
> wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, 
> wxEvtHandler*, wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BE75: 
> wxEvtHandler::SearchDynamicEventTable(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BEFD: wxEvtHandler::TryHereOnly(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BF92: wxEvtHandler::ProcessEventLocally(wxEvent&) 
> (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BFF4: wxEvtHandler::ProcessEvent(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==
> ==15605== Invalid write of size 1
> ==15605==    at 0x1D00D00B: 
> wxRichTextPrintout::wxRichTextPrintout(wxString const&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_richtext-3.0.so.0.1.0)
> ==15605==    by 0x1EC63648: XS_Wx__RichTextPrintout_new(interpreter*, 
> cv*) (RichText.c:19049)
> ==15605==    by 0x4EF0865: Perl_pp_entersub (in /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x4EE8E85: Perl_runops_standard (in 
> /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x4E7A48F: Perl_call_sv (in /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x6FAE0CC: wxPliEventCallback::Handler(wxEvent&) 
> (e_cback.cpp:93)
> ==15605==    by 0x802882D: 
> wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, 
> wxEvent&) const (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BB11: 
> wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, 
> wxEvtHandler*, wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BE75: 
> wxEvtHandler::SearchDynamicEventTable(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BEFD: wxEvtHandler::TryHereOnly(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BF92: wxEvtHandler::ProcessEventLocally(wxEvent&) 
> (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BFF4: wxEvtHandler::ProcessEvent(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==  Address 0x12feae28 is not stack'd, malloc'd or (recently) free'd
> ==15605==
> ==15605== Invalid write of size 8
> ==15605==    at 0x1D00D028: 
> wxRichTextPrintout::wxRichTextPrintout(wxString const&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_richtext-3.0.so.0.1.0)
> ==15605==    by 0x1EC63648: XS_Wx__RichTextPrintout_new(interpreter*, 
> cv*) (RichText.c:19049)
> ==15605==    by 0x4EF0865: Perl_pp_entersub (in /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x4EE8E85: Perl_runops_standard (in 
> /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x4E7A48F: Perl_call_sv (in /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x6FAE0CC: wxPliEventCallback::Handler(wxEvent&) 
> (e_cback.cpp:93)
> ==15605==    by 0x802882D: 
> wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, 
> wxEvent&) const (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BB11: 
> wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, 
> wxEvtHandler*, wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BE75: 
> wxEvtHandler::SearchDynamicEventTable(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BEFD: wxEvtHandler::TryHereOnly(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BF92: wxEvtHandler::ProcessEventLocally(wxEvent&) 
> (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BFF4: wxEvtHandler::ProcessEvent(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==  Address 0x12feae10 is 0 bytes after a block of size 560 alloc'd
> ==15605==    at 0x4C2B0E0: operator new(unsigned long) (in 
> /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==15605==    by 0x1EC6363A: XS_Wx__RichTextPrintout_new(interpreter*, 
> cv*) (RichText.c:19049)
> ==15605==    by 0x4EF0865: Perl_pp_entersub (in /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x4EE8E85: Perl_runops_standard (in 
> /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x4E7A48F: Perl_call_sv (in /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x6FAE0CC: wxPliEventCallback::Handler(wxEvent&) 
> (e_cback.cpp:93)
> ==15605==    by 0x802882D: 
> wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, 
> wxEvent&) const (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BB11: 
> wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, 
> wxEvtHandler*, wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BE75: 
> wxEvtHandler::SearchDynamicEventTable(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BEFD: wxEvtHandler::TryHereOnly(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BF92: wxEvtHandler::ProcessEventLocally(wxEvent&) 
> (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BFF4: wxEvtHandler::ProcessEvent(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==
> ==15605== Invalid read of size 4
> ==15605==    at 0x1D00D86B: wxRichTextPrintout::CalculateScaling(wxDC*, 
> wxRect&, wxRect&, wxRect&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_richtext-3.0.so.0.1.0)
> ==15605==    by 0x1D00E0CF: wxRichTextPrintout::OnPreparePrinting() (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_richtext-3.0.so.0.1.0)
> ==15605==    by 0x7AEE9EB: wxPrintPreviewBase::RenderPageIntoDC(wxDC&, 
> int) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_core-3.0.so.0.1.0)
> ==15605==    by 0x1D3CBBB4: 
> wxPdfPrintPreviewImpl::RenderPageIntoBitmap(wxBitmap&, int) (in 
> /usr/local/lib/perl/5.18.2/auto/Wx/PdfDocument/libwxcode_gtk2u_pdfdoc-3.0.so.0.0.0)

This is the first place where a wxPdfDocument method is involved. This 
method just forwards parameters to a RichText print method. You 
could/should probably check whether the "wxBitmap& bmp" parameter is ok 
and whether its internal buffer is large enough.

> ==15605==    by 0x7AEF45A: wxPrintPreviewBase::RenderPage(int) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_core-3.0.so.0.1.0)
> ==15605==    by 0x7AEA1BF: wxPrintPreviewBase::UpdatePageRendering() (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_core-3.0.so.0.1.0)
> ==15605==    by 0x7AEA27C: wxPreviewCanvas::OnIdle(wxIdleEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_core-3.0.so.0.1.0)
> ==15605==    by 0x802882D: 
> wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, 
> wxEvent&) const (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BB11: 
> wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, 
> wxEvtHandler*, wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BBC2: wxEventHashTable::HandleEvent(wxEvent&, 
> wxEvtHandler*) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BF1C: wxEvtHandler::TryHereOnly(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BF92: wxEvtHandler::ProcessEventLocally(wxEvent&) 
> (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==  Address 0x12dd5670 is 16 bytes after a block of size 560 alloc'd
> ==15605==    at 0x4C2B0E0: operator new(unsigned long) (in 
> /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==15605==    by 0x1EC6363A: XS_Wx__RichTextPrintout_new(interpreter*, 
> cv*) (RichText.c:19049)
> ==15605==    by 0x4EF0865: Perl_pp_entersub (in /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x4EE8E85: Perl_runops_standard (in 
> /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x4E7A48F: Perl_call_sv (in /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x6FAE0CC: wxPliEventCallback::Handler(wxEvent&) 
> (e_cback.cpp:93)
> ==15605==    by 0x802882D: 
> wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, 
> wxEvent&) const (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BB11: 
> wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, 
> wxEvtHandler*, wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BE75: 
> wxEvtHandler::SearchDynamicEventTable(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BEFD: wxEvtHandler::TryHereOnly(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BF92: wxEvtHandler::ProcessEventLocally(wxEvent&) 
> (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BFF4: wxEvtHandler::ProcessEvent(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==
> ==15605== Invalid read of size 4
> ==15605==    at 0x1D00D884: wxRichTextPrintout::CalculateScaling(wxDC*, 
> wxRect&, wxRect&, wxRect&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_richtext-3.0.so.0.1.0)
> ==15605==    by 0x1D00E0CF: wxRichTextPrintout::OnPreparePrinting() (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_richtext-3.0.so.0.1.0)
> ==15605==    by 0x7AEE9EB: wxPrintPreviewBase::RenderPageIntoDC(wxDC&, 
> int) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_core-3.0.so.0.1.0)
> ==15605==    by 0x1D3CBBB4: 
> wxPdfPrintPreviewImpl::RenderPageIntoBitmap(wxBitmap&, int) (in 
> /usr/local/lib/perl/5.18.2/auto/Wx/PdfDocument/libwxcode_gtk2u_pdfdoc-3.0.so.0.0.0)
> ==15605==    by 0x7AEF45A: wxPrintPreviewBase::RenderPage(int) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_core-3.0.so.0.1.0)
> ==15605==    by 0x7AEA1BF: wxPrintPreviewBase::UpdatePageRendering() (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_core-3.0.so.0.1.0)
> ==15605==    by 0x7AEA27C: wxPreviewCanvas::OnIdle(wxIdleEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_core-3.0.so.0.1.0)
> ==15605==    by 0x802882D: 
> wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, 
> wxEvent&) const (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BB11: 
> wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, 
> wxEvtHandler*, wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BBC2: wxEventHashTable::HandleEvent(wxEvent&, 
> wxEvtHandler*) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BF1C: wxEvtHandler::TryHereOnly(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BF92: wxEvtHandler::ProcessEventLocally(wxEvent&) 
> (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==  Address 0x12dd5674 is 20 bytes after a block of size 560 alloc'd
> ==15605==    at 0x4C2B0E0: operator new(unsigned long) (in 
> /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==15605==    by 0x1EC6363A: XS_Wx__RichTextPrintout_new(interpreter*, 
> cv*) (RichText.c:19049)
> ==15605==    by 0x4EF0865: Perl_pp_entersub (in /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x4EE8E85: Perl_runops_standard (in 
> /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x4E7A48F: Perl_call_sv (in /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x6FAE0CC: wxPliEventCallback::Handler(wxEvent&) 
> (e_cback.cpp:93)
> ==15605==    by 0x802882D: 
> wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, 
> wxEvent&) const (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BB11: 
> wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, 
> wxEvtHandler*, wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BE75: 
> wxEvtHandler::SearchDynamicEventTable(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BEFD: wxEvtHandler::TryHereOnly(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BF92: wxEvtHandler::ProcessEventLocally(wxEvent&) 
> (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BFF4: wxEvtHandler::ProcessEvent(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==
> 
> valgrind: m_mallocfree.c:277 (mk_plain_bszB): Assertion 'bszB != 0' failed.
> valgrind: This is probably caused by your program erroneously writing 
> past the
> end of a heap block and corrupting heap metadata.  If you fix any
> invalid writes reported by Memcheck, this assertion failure will
> probably go away.  Please try that before reporting this as a bug.
> 
> ==15605==    at 0x38050BAC: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
> ==15605==    by 0x38050D06: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
> ==15605==    by 0x3805B36A: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
> ==15605==    by 0x3805DB09: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
> ==15605==    by 0x38021535: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
> ==15605==    by 0x3802172B: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
> ==15605==    by 0x380218F5: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
> ==15605==    by 0x3809DC03: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
> ==15605==    by 0x380AC87C: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
> 
> sched status:
>    running_tid=1
> 
> Thread 1: status = VgTs_Runnable
> ==15605==    at 0x4C2B0E0: operator new(unsigned long) (in 
> /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==15605==    by 0x8514D4E: std::basic_string<wchar_t, 
> std::char_traits<wchar_t>, std::allocator<wchar_t> 
>  >::_Rep::_S_create(unsigned long, unsigned long, 
> std::allocator<wchar_t> const&) (in 
> /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
> ==15605==    by 0x851593C: std::basic_string<wchar_t, 
> std::char_traits<wchar_t>, std::allocator<wchar_t> 
>  >::_Rep::_M_clone(std::allocator<wchar_t> const&, unsigned long) (in 
> /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
> ==15605==    by 0x85159E3: std::basic_string<wchar_t, 
> std::char_traits<wchar_t>, std::allocator<wchar_t> >::reserve(unsigned 
> long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
> ==15605==    by 0x8515D85: std::basic_string<wchar_t, 
> std::char_traits<wchar_t>, std::allocator<wchar_t> >::append(unsigned 
> long, wchar_t) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
> ==15605==    by 0x1D352EBD: wxPdfFontDataCore::ConvertCID2GID(wxString 
> const&, wxPdfEncoding const*, wxPdfSortedArrayInt*, wxPdfChar2GlyphMap*) 
> const (in 
> /usr/local/lib/perl/5.18.2/auto/Wx/PdfDocument/libwxcode_gtk2u_pdfdoc-3.0.so.0.0.0)
> ==15605==    by 0x1D352BB8: wxPdfFontDataCore::GetStringWidth(wxString 
> const&, wxPdfEncoding const*, bool) const (in 
> /usr/local/lib/perl/5.18.2/auto/Wx/PdfDocument/libwxcode_gtk2u_pdfdoc-3.0.so.0.0.0)
> ==15605==    by 0x1D33940C: wxPdfDocument::DoGetStringWidth(wxString 
> const&) (in 
> /usr/local/lib/perl/5.18.2/auto/Wx/PdfDocument/libwxcode_gtk2u_pdfdoc-3.0.so.0.0.0)
> ==15605==    by 0x1D33AA8E: wxPdfDocument::GetStringWidth(wxString 
> const&) (in 
> /usr/local/lib/perl/5.18.2/auto/Wx/PdfDocument/libwxcode_gtk2u_pdfdoc-3.0.so.0.0.0)
> ==15605==    by 0x1D333BC5: wxPdfDCImpl::DoGetTextExtent(wxString 
> const&, int*, int*, int*, int*, wxFont const*) const (in 
> /usr/local/lib/perl/5.18.2/auto/Wx/PdfDocument/libwxcode_gtk2u_pdfdoc-3.0.so.0.0.0)
> ==15605==    by 0x1D332A9C: 
> wxPdfDCImpl::DoGetPartialTextExtents(wxString const&, wxArrayInt&) const 
> (in 
> /usr/local/lib/perl/5.18.2/auto/Wx/PdfDocument/libwxcode_gtk2u_pdfdoc-3.0.so.0.0.0)
> ==15605==    by 0x1CFA0B00: 
> wxRichTextPlainText::GetRangeSize(wxRichTextRange const&, wxSize&, int&, 
> wxDC&, wxRichTextDrawingContext&, int, wxPoint const&, wxSize const&, 
> wxArrayInt*) const (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_richtext-3.0.so.0.1.0)
> ==15605==    by 0x1CF7EDF5: 
> wxRichTextParagraph::GetRangeSize(wxRichTextRange const&, wxSize&, int&, 
> wxDC&, wxRichTextDrawingContext&, int, wxPoint const&, wxSize const&, 
> wxArrayInt*) const (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_richtext-3.0.so.0.1.0)
> ==15605==    by 0x1CF9ECE4: wxRichTextParagraph::Layout(wxDC&, 
> wxRichTextDrawingContext&, wxRect const&, wxRect const&, int) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_richtext-3.0.so.0.1.0)
> ==15605==    by 0x1CF833FE: wxRichTextObject::LayoutToBestSize(wxDC&, 
> wxRichTextDrawingContext&, wxRichTextBuffer*, wxRichTextAttr const&, 
> wxRichTextAttr const&, wxRect const&, wxRect const&, int) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_richtext-3.0.so.0.1.0)
> ==15605==    by 0x1CF839CD: wxRichTextParagraphLayoutBox::Layout(wxDC&, 
> wxRichTextDrawingContext&, wxRect const&, wxRect const&, int) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_richtext-3.0.so.0.1.0)
> ==15605==    by 0x1D00E140: wxRichTextPrintout::OnPreparePrinting() (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_richtext-3.0.so.0.1.0)
> ==15605==    by 0x7AEE9EB: wxPrintPreviewBase::RenderPageIntoDC(wxDC&, 
> int) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_core-3.0.so.0.1.0)
> ==15605==    by 0x1D3CBBB4: 
> wxPdfPrintPreviewImpl::RenderPageIntoBitmap(wxBitmap&, int) (in 
> /usr/local/lib/perl/5.18.2/auto/Wx/PdfDocument/libwxcode_gtk2u_pdfdoc-3.0.so.0.0.0)
> ==15605==    by 0x7AEF45A: wxPrintPreviewBase::RenderPage(int) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_core-3.0.so.0.1.0)
> ==15605==    by 0x7AEA1BF: wxPrintPreviewBase::UpdatePageRendering() (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_core-3.0.so.0.1.0)
> ==15605==    by 0x7AEA27C: wxPreviewCanvas::OnIdle(wxIdleEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_core-3.0.so.0.1.0)
> ==15605==    by 0x802882D: 
> wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, 
> wxEvent&) const (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BB11: 
> wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, 
> wxEvtHandler*, wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BBC2: wxEventHashTable::HandleEvent(wxEvent&, 
> wxEvtHandler*) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BF1C: wxEvtHandler::TryHereOnly(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BF92: wxEvtHandler::ProcessEventLocally(wxEvent&) 
> (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x819BFF4: wxEvtHandler::ProcessEvent(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x7B68C7A: 
> wxScrollHelperEvtHandler::ProcessEvent(wxEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_core-3.0.so.0.1.0)
> ==15605==    by 0x819BD86: wxEvtHandler::SafelyProcessEvent(wxEvent&) 
> (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x7B1CC1E: wxWindowBase::SendIdleEvents(wxIdleEvent&) 
> (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_core-3.0.so.0.1.0)
> ==15605==    by 0x7B1CC47: wxWindowBase::SendIdleEvents(wxIdleEvent&) 
> (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_core-3.0.so.0.1.0)
> ==15605==    by 0x7A0881E: wxFrame::SendIdleEvents(wxIdleEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_core-3.0.so.0.1.0)
> ==15605==    by 0x7B1CC47: wxWindowBase::SendIdleEvents(wxIdleEvent&) 
> (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_core-3.0.so.0.1.0)
> ==15605==    by 0x7B1CC47: wxWindowBase::SendIdleEvents(wxIdleEvent&) 
> (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_core-3.0.so.0.1.0)
> ==15605==    by 0x7B1CC47: wxWindowBase::SendIdleEvents(wxIdleEvent&) 
> (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_core-3.0.so.0.1.0)
> ==15605==    by 0x7B1CC47: wxWindowBase::SendIdleEvents(wxIdleEvent&) 
> (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_core-3.0.so.0.1.0)
> ==15605==    by 0x7B1CC47: wxWindowBase::SendIdleEvents(wxIdleEvent&) 
> (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_core-3.0.so.0.1.0)
> ==15605==    by 0x7A0881E: wxFrame::SendIdleEvents(wxIdleEvent&) (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_core-3.0.so.0.1.0)
> ==15605==    by 0x7A3D40C: wxAppBase::ProcessIdle() (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_core-3.0.so.0.1.0)
> ==15605==    by 0x799276D: wxApp::DoIdle() (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_core-3.0.so.0.1.0)
> ==15605==    by 0x7992872: wxapp_idle_callback (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_core-3.0.so.0.1.0)
> ==15605==    by 0x9967CE4: g_main_context_dispatch (in 
> /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0)
> ==15605==    by 0x9968047: ??? (in 
> /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0)
> ==15605==    by 0x9968309: g_main_loop_run (in 
> /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0)
> ==15605==    by 0x8A9D446: gtk_main (in 
> /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.23)
> ==15605==    by 0x79A5694: wxGUIEventLoop::DoRun() (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_gtk2u_core-3.0.so.0.1.0)
> ==15605==    by 0x806ADDF: wxEventLoopBase::Run() (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x802A90C: wxAppConsoleBase::MainLoop() (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_3_0_1_uni/lib/libwx_baseu-3.0.so.0.1.0)
> ==15605==    by 0x6EE3EC8: wxPliApp::MainLoop() (app.h:195)
> ==15605==    by 0x6E96BB9: XS_Wx__App_MainLoop(interpreter*, cv*) 
> (Wx.c:14559)
> ==15605==    by 0x4EF0865: Perl_pp_entersub (in /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x4EE8E85: Perl_runops_standard (in 
> /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x4E81843: perl_run (in /usr/lib/libperl.so.5.18.2)
> ==15605==    by 0x400DD8: main (in /usr/bin/perl)
> 
> Thread 2: status = VgTs_WaitSys
> ==15605==    at 0x52ADC6D: ??? (syscall-template.S:81)
> ==15605==    by 0x9967FE3: ??? (in 
> /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0)
> ==15605==    by 0x9968309: g_main_loop_run (in 
> /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0)
> ==15605==    by 0xB3B4E15: ??? (in 
> /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.4000.0)
> ==15605==    by 0x998CF14: ??? (in 
> /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0)
> ==15605==    by 0x5A98181: start_thread (pthread_create.c:312)
> ==15605==    by 0x52BAFBC: clone (clone.S:111)
> 
> Thread 3: status = VgTs_WaitSys
> ==15605==    at 0x52ADC6D: ??? (syscall-template.S:81)
> ==15605==    by 0x9967FE3: ??? (in 
> /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0)
> ==15605==    by 0x99680EB: g_main_context_iteration (in 
> /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0)
> ==15605==    by 0x9968128: ??? (in 
> /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0)
> ==15605==    by 0x998CF14: ??? (in 
> /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0)
> ==15605==    by 0x5A98181: start_thread (pthread_create.c:312)
> ==15605==    by 0x52BAFBC: clone (clone.S:111)
> 
> 
> Note: see also the FAQ in the source distribution.
> It contains workarounds to several common problems.
> In particular, if Valgrind aborted or crashed after
> identifying problems in your program, there's a good chance
> that fixing those problems will prevent Valgrind aborting or
> crashing, especially if it happened in m_mallocfree.c.
> 
> If that doesn't help, please report this bug to: www.valgrind.org
> 
> In the bug report, send all the above text, the valgrind
> version, and what OS and version you are using.  Thanks.
> 


Reply via email to