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--