-
Andreas Möllenbeck
- PowerBuilder
- Friday, 24 January 2025 09:48 AM UTC
Hello everyone,
we are experiencing an issue with PowerBuilder IDE to simply crash when working with larger strings. Any help is appreciated!
Specifically, I’ve encountered an issue that arises when processing strings of around 34 MB or larger. When using FileWriteEx or attempting to increase the size of a string, the IDE regularly crashes.
In my tests, there seems to be a threshold at 36,272,092 bytes (approximately 34.5 MB) where the issue occurs. However, the behavior isn’t always consistent. Under identical conditions, the results vary: some operations fail, while others successfully handle even larger amounts of data. Interestingly, the step size (e.g., adding 1 byte or 32 bytes) also appears to influence the behavior, but I cannot repdroduce a specific „crash size“ for each case.
Regarding the test setup: both the test file and the log file are stored locally, and the test file is deleted during each loop to keep the conditions as consistent as possible. Nevertheless, the error frequently occurs between 34.5 MB and 35 MB.
Has anyone experienced similar issues?
Thank you very much.
Best regards,
Andreas
See test case:
long li_BlockSize = 1024*1024 // Blocksize
long li_StartLength = 0 // Startsize
long li_Result
long li_CurrentLength
long li_LogFile
long li_TestFile
string ls_Block = ""
string ls_ProgressFile = "C:\temp\log.txt"
string ls_filepath = "C:\temp\test.txt"
li_LogFile = FileOpen(ls_ProgressFile, TextMode!, Write!, Shared!)
If li_LogFile > 0 Then
// write initial message
FileWriteEx(li_LogFile, "Start of Test: Progress will be logged.~r~n")
FileClose(li_LogFile)
End If
ls_Block = Space(li_StartLength)
//Start
Do While True
li_CurrentLength = Len(ls_Block)
li_LogFile = FileOpen(ls_ProgressFile, TextMode!, Write!, Shared!)
If li_LogFile > 0 Then
FileWriteEx(li_LogFile, "Current Length:" + string(li_CurrentLength) + "~r~n")
FileClose(li_LogFile)
End If
If FileExists(ls_filepath) Then
FileDelete(ls_filepath)
End If
// write current block into test file
li_TestFile = FileOpen(ls_filepath, TextMode!, Write!, Shared!, Replace!)
li_Result = FileWriteEx(li_TestFile, ls_Block) // !!!!! POTENTIALLY CRASHES HERE (at approx. 35 MB) !!!!!
FileClose(li_TestFile)
li_LogFile = FileOpen(ls_ProgressFile, TextMode!, Write!, Shared!)
If li_LogFile > 0 Then
FileWriteEx(li_LogFile, "Size of Result:" + string(li_Result) + ".~r~n")
FileClose(li_LogFile)
End If
ls_Block = ls_Block + Space(li_BlockSize) // !!!!! POTENTIALLY CRASHES HERE (at approx. 35 MB) !!!!!
sleep(1)
Loop
Find Questions by Tag
Helpful?
If a reply or comment is helpful for you, please don’t hesitate to click the Helpful button. This action is further confirmation of their invaluable contribution to the Appeon Community.