[GSoC] Copying content from one text box to another in svx/ - A failed attempt

Michael Stahl mstahl at redhat.com
Tue Jul 15 01:03:17 PDT 2014

On 15/07/14 03:28, Matteo Campanelli wrote:
> On Mon, Jul 14, 2014 at 5:56 PM, Terrence Enger <tenger at iseries-guru.com
> <mailto:tenger at iseries-guru.com>> wrote:
>     The long string of nines looks like the result of reading freed memory
>     in a debug build.  valgrind may be able to tell you where the memory
>     was freed, if you have the patience to wait for it.

yep, something tends to overwrites freed memory with 0x99, at least in
--enable-dbgutil builds.

> Valgrind definitely found something kinda directly related to my new
> code; still have to understand what goes wrong at the lowermost call
> though. Some relevant output:
> *==19443== Invalid read of size 8*
> ==19443==    at 0xF4339F6: *SdrTextObj::ImpGetDrawOutliner()* const
> (svdotext.cxx:1233)
> ==19443==    by 0xF43988B: SdrTextObj::impCopyTextInTextObj(SdrTextObj*)
> const (svdotextdecomposition.cxx:813)
> ==19443==    by 0xF4389BF: (anonymous
> namespace)::impTextBreakupHandler::impHandleTruncatedPortion(DrawPortionInfo
> const&) (svdotextdecomposition.cxx:587)
> ==19443==    by 0xF4387EE: (anonymous
> namespace)::impTextBreakupHandler::impHandleDrawPortionInfo(DrawPortionInfo
> const&) (svdotextdecomposition.cxx:529)
> [more backtrace...]
> *==19443==  Address 0xd8 is not stack'd, malloc'd or (recently) free'd*

> Is 0xd8 the address returned by the lowermost call by any chance
> (i.e. SdrTextObj::ImpGetDrawOutliner())?

it is what is accessed at the position that valgrind reports. i.e.
svdotext.cxx:1233.   0xd8 is usually a null pointer being dereferenced.

also, if you're new to valgrind, you should start your investigation
with the first reported invalid access, usually the later ones are a
consequence of the first (but it may happen that there are some in your
OS libraries, if "suppressions" for those are missing; those can usually
be ignored...).

More information about the LibreOffice mailing list