bgrabitmap / lazpaint

🎨 Cross-platform image editor with raster and vector layers similar to Paint.Net written in Lazarus (Free Pascal)
https://lazpaint.github.io/
GNU General Public License v3.0
401 stars 55 forks source link

Access violation #96

Closed idnovic closed 4 years ago

idnovic commented 4 years ago

Platform: Windows 10

What happens: I open lazpaint I am presented with an dialogue with an error message. (see attachment)

What did I expect: I open lazpaint no error message

lazpaint error
idnovic commented 4 years ago

I can attach a log file if someone tells me where to find it

lainz commented 4 years ago

Which version of LazPaint are you running? Is from the installer or a portable zip file? What is the bitness of your OS? If it's a portable file, from which path are you running it? Try running it as administrator to see if because it can't write a config file. Or try disabling your antivirus / firewall since it connects to internet to check if a new version is available.

idnovic commented 4 years ago

I am running lazpaint 7.0.7 the installer version not portable 64 bit windows 10 1909 I tried as admin, same error

I am not running any antivir/firewall. Even disabled windows defender.

Can I somehow check why the error message is presented? A log would help me.

lainz commented 4 years ago

AFAIK there is no log file.

You must compile the application in debug mode and it hopefully will throw the line where the error is.

To compile: Install Lazarus 2.0.6, install bgrabitmap, bgracontrols and lazpaintcontrols. Change the build mode to debug, and debug it.

circular17 commented 4 years ago

Hmmm I suppose i can add a global error handler to display more information.

lainz commented 4 years ago

Hmmm I suppose i can add a global error handler to display more information.

https://github.com/r3code/lazarus-exception-logger

idnovic commented 4 years ago

That would be awesome. I did not find time to compile it myself. I did look into debugging on windows but still need to test it. I found an attachable process debugger.

JohnTHaller commented 4 years ago

It may have something to do with having a specific debugger or graphics driver installed. I can recreate this error using both the 32-bit and 64-bit zipped versions as well as the 64-bit installed version on my Windows 10 x64 main machine with build 1903. It does not occur on a clean Windows 10 x64 virtual machine in VirtualBox. My primary machine has multiple versions of Delphi installed and is using the current Nvidia drivers for a GTX 1060.

Additionally, the Color and Layer windows will not show on launch when this error occurs even though they are turned on in CFG.

circular17 commented 4 years ago

Hmm just a guess, it could be related to the user name containing special characters, thus making an error in the configuration directory. Otherwise, I don't know, I could try and go through the code at startup. But really debugging is the best way to find.

idnovic commented 4 years ago

Hmm just a guess, it could be related to the user name containing special characters, thus making an error in the configuration directory. Otherwise, I don't know, I could try and go through the code at startup. But really debugging is the best way to find.

My username does not contain special characters. I did not find time yet to debug the problem. I hope I will find time this weekend.

circular17 commented 4 years ago

Hi there.

I was not able to compile ExceptionLogger on Linux. So I've added on the dev branch some basic dialog when an unhandled exception occurs.

That will show the exception message in all cases and close the application. The stack trace will be shown only if the application is compiled in debug mode. But you don't need to run it within Lazarus, just to have the adequate binary files.

lainz commented 4 years ago

Hi, this is the Windows 64 bit binary from today sources lazpaint-debug-win64-2020-02-04.zip

circular17 commented 4 years ago

Thank you Lainz

lainz commented 4 years ago

You're welcome. And anyone tested the build with debug information?

lainz commented 4 years ago

Tested lazpaint 32 on macOS with "Wine is not an emulator" and works fine, thats another option at least :)

circular17 commented 4 years ago

Cool. That's indeed a good way to bypass some problems with MacOS compatibility.

idnovic commented 4 years ago

You're welcome. And anyone tested the build with debug information?

I reinstalled windows. I am testing tonight but I can not compare to the previous system config.

circular17 commented 4 years ago

Ok, well if it works that's good news as well.

idnovic commented 4 years ago

works without issue atm.

circular17 commented 4 years ago

We will see with next test version of LazPaint what happens.

JohnTHaller commented 4 years ago

This is still occurring for me with the 7.1.1 release on my Windows 10 64-bit machine with both the 32-bit and 64-bit builds whether installed or not.

64-bit error: Error initializing application!

Exception class: EAccessViolation Message: Access violation Stacktrace: $0000000100554BF8 $000000010055429A $0000000100554250 $000000010005B0E8 $0000000100020E0E $000000010001F09E $000000010002668F $000000010002DEC4 $000000010004E710 $0000000100051ABB $0000000100003A85 $0000000100003AE6 $00000001000183E0 $0000000100003157 $00007FF8555B7BD4 $00007FF856DCCED1

Application will now close.

32-bit Error: Error initializing application!

Exception class: EAccessViolation Message: Access violation Stacktrace: $00898003 $00897899 $0044E751 $0041CED9 $0041B624 $00421A86 $00427E1B $00443E74

Application will now close.

circular17 commented 4 years ago

Ok can you try with the debug version 7.0.9?

JohnTHaller commented 4 years ago

Ok can you try with the debug version 7.0.9?

Is there a way to direct the output as opposed to trying to copy and paste the dozen+ messagebox windows that are created?

circular17 commented 4 years ago

Nope, but just the first one will be useful.

JohnTHaller commented 4 years ago

Here's the first message text and I attached the first 1,000+ lines as a TXT file.

Exception class: EAccessViolation
Message: Access violation
Stacktrace:
    $00000001005D1B41  CLOSE,  line 467 of tablet/Tablet.pas
    $00000001005D0CFA  DESTROY,  line 121 of tablet/laztabletwin.pas
    $00000001005D0C67  CREATE,  line 117 of tablet/laztabletwin.pas
    $00000001000696F0  FORMCREATE,  line 950 of lazpaintmainform.pas
    $00000001000273AE  DOCREATE,  line 896 of include/customform.inc
    $000000010002563E  AFTERCONSTRUCTION,  line 77 of include/customform.inc
    $000000010002CC2F  CREATE,  line 3135 of include/customform.inc
    $0000000100034464  CREATEFORM,  line 2241 of include/application.inc
    $000000010005720C  FORMSNEEDED,  line 439 of lazpaintinstance.pas
    $000000010005BF81  SHOW,  line 1366 of lazpaintinstance.pas
    $0000000100003D93  main,  line 197 of lazpaint.lpr
    $0000000100003E36  main,  line 208 of lazpaint.lpr
    $00000001000190B0
    $0000000100003177
    $00007FFE56AB7BD4
    $00007FFE589ACED1

Application will now close.

LaxPaint709Debug.txt

circular17 commented 4 years ago

Thanks very much. So it is a problem with the initialization of the tablet. I will add some code to avoid the crash. In this case, the tablet "pressure" would not be available.

I will provide a debug version to test it.

Oops my old Windows laptop just died. I will ask someone else to make the binaries.

idnovic commented 4 years ago

I did like to add that I did run lazpaint on a surface go. So it maybe was the same error for me

circular17 commented 4 years ago

Hmm you're not using this computer anymore then so you cannot reproduce the bug?

idnovic commented 4 years ago

I do. Even with a pen but lazpaint does not crash for me. I am using lazpaint 7.1.1.

circular17 commented 4 years ago

Ok so I consider that issue to be fixed.

JohnTHaller commented 4 years ago

7.1.1 still crashes for me, both 32-bit and 64-bit, as per my earlier comment: https://github.com/bgrabitmap/lazpaint/issues/96#issuecomment-612633379

The PC it is crashing on is a desktop without a touch screen. It used to have a USB drawing tablet connected which it no longer has.

circular17 commented 4 years ago

When I say fixed I mean fixed on dev branch and next release.

JohnTHaller commented 4 years ago

When I say fixed I mean fixed on dev branch and next release.

Ah, thanks. I didn't see a place to download the dev test. I can confirm this is fixed in 7.1.2. Thanks!