Re: Re: Error on svl modules

Davide Dozza <[email protected]> Fri, 18 Jun 2010 14:26:07 +0200
Newsgroups gmane.comp.openoffice.devel.tools
Message-ID <[email protected]>
--------------enig5DDEEB66E5A4D875DA5A5E77
Content-Type: text/plain; charset=ISO-8859-15
Content-Transfer-Encoding: quoted-printable

Michael Stahl ha scritto:
> On 18/06/2010 12:08, Davide Dozza wrote:
>> Michael Stahl ha scritto:
>>> On 18/06/2010 11:50, Davide Dozza wrote:
>>>> I did it.
>>> ok,
>>>
>>>> The problem happens on tstring.cxx
>>>>
>>>> xub_StrLen ImplStringLen( const sal_Char* pStr )
>>>> {
>>>> 	const sal_Char* pTempStr =3D pStr;
>>>> 	while( *pTempStr )
>>>> 		++pTempStr;
>>>> 	return (xub_StrLen)(pTempStr-pStr);
>>>> }
>>>>
>>>> *pTempStr is a null pointer.
>>>>
>>>> Davide
>>> well, yes, that's where it crashes.
>>> but the problem is that somebody is calling the Len() function on a n=
ull
>>> pointer.
>>> you need to post the stack backtrace to find out where the cause of t=
he
>>> problem is.
>>> to get the backtrace you need to attach the debugger somehow.
>>> (i don't usually work on windows, so i can't remember how that is don=
e...)
>>>
>> I'm not an expert too but is it the call stack?
>> It's enough if I just cut and paste info in it?
>>
>> Davide
>=20
> did you attach something to your mail?
> because i'm wondering what "it" is, and the most likely explanation is
> that "it" is an attachment that the silly mailing list software has
> removed from your mail.
>=20
> please paste "it" into your mail instead :)
>=20

This is the call stack entries.

tlmi.dll!ImplStringLen(const char * pStr=3D0x00000000)  Line 81 + 0x3
bytes	C++

tlmi.dll!String::String(const char * pByteStr=3D0x00000000, unsigned shor=
t
eTextEncoding=3D11, unsigned long nCvtFlags=3D819)  Line 95 + 0x12 bytes	=
C++

 	transex3.exe!Export::GetTempFile()  Line 707 + 0x1e bytes	C++

 	transex3.exe!Export::GetNativeFile(ByteString sSource=3D{...})  Line 62=
3
+ 0x9 bytes	C++

	transex3.exe!GetNextFile()  Line 251 + 0x33 bytes	C++

 	transex3.exe!main(int argc=3D11, char * * argv=3D0x00964528)  Line 289 =
+
0x5 bytes	C

 	transex3.exe!__tmainCRTStartup()  Line 582 + 0x17 bytes	C
 	kernel32.dll!7c817077() =09
 	[Frames below may be incorrect and/or missing, no symbols loaded for
kernel32.dll]=09


Therefore by double clicking starting on top of call stack I have:

tstring.cxx
 - pTempStr bad pointer

structvt.cxx
- 	rtl_string2UString( (rtl_uString **)(&mpData),
		pByteStr, ImplStringLen( pByteStr ),
		eTextEncoding, nCvtFlags );

export2.cxx
- String sTempDir( Export::GetEnv( "TEMP" ), RTL_TEXTENCODING_ASCII_US );=


export2.cxx
- DirEntry aTemp( GetTempFile());

export.cxx

srclex.l
- if ( !pFile )

I don't know if it's clear enough.

Anyway what I find strange it such line code in export2.cxx:
String sTempDir( Export::GetEnv( "TEMP" ), RTL_TEXTENCODING_ASCII_US

The TEMP variable is involved.

I'll try to change it to C:/Temp instead of Documents and
Settings/utente1/Temp

Davide









--------------enig5DDEEB66E5A4D875DA5A5E77
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.12 (GNU/Linux)
Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org/

iEYEARECAAYFAkwbZd8ACgkQIXgZqRs8KhNxwgCeLtXI88ZD1CQeYJEOXaqiN4n4
xAMAoIo4SbNjyvvCLNm0hWCGV/cSBKSx
=0Z2A
-----END PGP SIGNATURE-----

--------------enig5DDEEB66E5A4D875DA5A5E77--