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 = 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 null >>> pointer. >>> you need to post the stack backtrace to find out where the cause of the >>> 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 done...) >>> >> 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 > > 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. > > please paste "it" into your mail instead :) >
This is the call stack entries. tlmi.dll!ImplStringLen(const char * pStr=0x00000000) Line 81 + 0x3 bytes C++ tlmi.dll!String::String(const char * pByteStr=0x00000000, unsigned short eTextEncoding=11, unsigned long nCvtFlags=819) Line 95 + 0x12 bytes C++ transex3.exe!Export::GetTempFile() Line 707 + 0x1e bytes C++ transex3.exe!Export::GetNativeFile(ByteString sSource={...}) Line 623 + 0x9 bytes C++ transex3.exe!GetNextFile() Line 251 + 0x33 bytes C++ transex3.exe!main(int argc=11, char * * argv=0x00964528) Line 289 + 0x5 bytes C transex3.exe!__tmainCRTStartup() Line 582 + 0x17 bytes C kernel32.dll!7c817077() [Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll] 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
signature.asc
Description: OpenPGP digital signature