Golly 2.8b3 (Perl is dead, long live Lua)

For general discussion about Conway's Game of Life.
User avatar
Andrew
Moderator
Posts: 1066
Joined: June 2nd, 2009, 2:08 am
Location: Melbourne, Australia
Contact:

Golly 2.8b3 (Perl is dead, long live Lua)

Post by Andrew »

EDIT: Golly 2.8 is now available from Sourceforge:

https://sourceforge.net/projects/golly/ ... golly-2.8/

See Help > Changes for the full list of changes. The most significant change is the decision to drop support for Perl (mainly because recent Perl versions are not binary compatible with each other and it became increasingly difficult to build Golly in a consistent way on all platforms). If you want to keep using Perl scripts then you'll need to save a copy of Golly 2.7.

WARNING: If you want to use both 2.7 and 2.8 then make sure you move the GollyPrefs file for 2.7 into the same folder as the 2.7 application. The location of GollyPrefs depends on your platform:

On Linux: ~/.golly/
On Mac: ~/Library/Application Support/Golly/
On Windows XP: C:\Documents and Settings\username\Application Data\Golly\
On Windows 7+: C:\Users\username\AppData\Roaming\Golly\

The good news is that Golly now supports Lua (see Help > Lua Scripting for all the details). Lua is an increasingly popular scripting language that's small enough to be statically linked into Golly. This has some big advantages:

- No need to download an installer.
- No need to to worry about 32/64-bit compatibility.
- No need to specify a path to a .dll or .so file.

Lua scripts are significantly faster than their Perl/Python equivalents, especially if there are lots of setcell/getcell calls (invert.lua is twice as fast as invert.pl/py). We've supplied Lua versions of all the old Perl scripts and most of the Python scripts. One of my goals for the final 2.8 release is to have Lua versions of all the Python scripts supplied with Golly. Hopefully there are some keen Lua scripters out there willing to write some of those scripts!

As always, please post your feedback, suggestions and bug reports here. There is a *lot* of new code in this beta version so I'm expecting the testing period to last a couple of months at least.
Use Glu or Glui to explore CA rules on non-periodic tilings: DominoLife and HatLife and SpectreLife
User avatar
simsim314
Posts: 1828
Joined: February 10th, 2014, 1:27 pm

Re: Golly 2.8b3 (Perl is dead, long live Lua)

Post by simsim314 »

Both 64 & 32 bit crash on opening on my station (I'm running windows 10).

No error message, maybe there is some logs?
User avatar
Andrew
Moderator
Posts: 1066
Joined: June 2nd, 2009, 2:08 am
Location: Melbourne, Australia
Contact:

Re: Golly 2.8b3 (Perl is dead, long live Lua)

Post by Andrew »

simsim314 wrote:Both 64 & 32 bit crash on opening on my station (I'm running windows 10).?
Not a very promising start! If both builds crash then I suspect it's something to do with the switch to OpenGL for rendering patterns. What sort of graphics card is installed on your system? Anything unusual about it? Are you able to run other apps that you know use OpenGL?
simsim314 wrote:No error message, maybe there is some logs?
Nope, sorry. I don't know much about Windows.
Use Glu or Glui to explore CA rules on non-periodic tilings: DominoLife and HatLife and SpectreLife
drc
Posts: 1664
Joined: December 3rd, 2015, 4:11 pm

Re: Golly 2.8b3 (Perl is dead, long live Lua)

Post by drc »

Are you planning on ever adding 2-state non-totalistic rule support? I have way too many rule tables. 64-bit win works fine here.
User avatar
Andrew
Moderator
Posts: 1066
Joined: June 2nd, 2009, 2:08 am
Location: Melbourne, Australia
Contact:

Re: Golly 2.8b3 (Perl is dead, long live Lua)

Post by Andrew »

drc wrote:Are you planning on ever adding 2-state non-totalistic rule support?
I'm unlikely to do it. Tom was interested at one point but he seems to be busy on other projects at the moment.
64-bit win works fine here.
Which version of Windows? 7? 8? 10?
Use Glu or Glui to explore CA rules on non-periodic tilings: DominoLife and HatLife and SpectreLife
User avatar
Andrew
Moderator
Posts: 1066
Joined: June 2nd, 2009, 2:08 am
Location: Melbourne, Australia
Contact:

Re: Golly 2.8b3 (Perl is dead, long live Lua)

Post by Andrew »

@simsim314: Can you please try running this small OpenGL app (64-bit, let me know if you need a 32-bit build):

http://www.trevorrow.com/golly/cube.zip

If that fails then at least we know it's not a Golly-specific bug.
Use Glu or Glui to explore CA rules on non-periodic tilings: DominoLife and HatLife and SpectreLife
User avatar
simsim314
Posts: 1828
Joined: February 10th, 2014, 1:27 pm

Re: Golly 2.8b3 (Perl is dead, long live Lua)

Post by simsim314 »

Andrew wrote:What sort of graphics card is installed on your system? Anything unusual about it? Are you able to run other apps that you know use OpenGL?
For starters I'm able to run golly 2.7 :)
I've GTX970. And I don't think I have problems with OpenGL...
Andrew wrote:@simsim314: Can you please try running this small OpenGL app (64-bit, let me know if you need a 32-bit build):
I'm able to see the cube - the app states double buffered display is supported.
I'm able to open new window of the cube as well.

But when I switch to stereo mode it throws an exception:
Stereo not supported by the graphics card.

---------

@Andrew I would suggest to have "debug mode" for golly to generate logs. This way you could better support user complains about crashes on their system, especially crashes they themselves can't reproduce - they'll just send you the log file with all their actions, and you'll get a general idea of where (and possible why) the problem occurred.

Another option is to have a debug files and source files, so windows would be able to state at what line it crashes. This could work for me (I've VS2013 and it suggest to debug golly), but logs is the general way to go with this stuff.

EDIT Other possible explanation is something deep in the kernel of Windows10 and golly's GUI library.
Last edited by simsim314 on May 12th, 2016, 4:11 am, edited 1 time in total.
User avatar
Scorbie
Posts: 1728
Joined: December 7th, 2013, 1:05 am

Re: Golly 2.8b3 (Perl is dead, long live Lua)

Post by Scorbie »

simsim314 wrote:@Andrew I would suggest to have "debug mode" for golly to generate logs. This way you could better support user complains about crashes on their system, especially crashes they themselves can't reproduce - they'll just send you the log file with all their actions, and you'll get a general idea of where (and possible why) the problem occurred.

Another option is to have a debug files and source files, so windows would be able to state at what line it crashes. This could work for me (I've VS2013 and it suggest to debug golly), but logs is the general way to go with this stuff.

EDIT Other possible explanation is something deep in the kernel of Windows10 and golly's GUI library.
Simsim for now you could launch golly in the terminal (your/path/to/golly/executable) and it will throw error messages to stderr. Still, few people know this and I think it is a good idea to use a log file.
User avatar
simsim314
Posts: 1828
Joined: February 10th, 2014, 1:27 pm

Re: Golly 2.8b3 (Perl is dead, long live Lua)

Post by simsim314 »

Scorbie wrote:Simsim for now you could launch golly in the terminal (your/path/to/golly/executable) and it will throw error messages to stderr.
It's a GUI error - it launches golly UI from the terminal and crashes without any message to the terminal.

For what it's worth - I managed to run bgolly 2.8. This is very probably UI issue (on the other hand I'm not sure what is the difference between 2.7 and 2.8 ).
User avatar
Andrew
Moderator
Posts: 1066
Joined: June 2nd, 2009, 2:08 am
Location: Melbourne, Australia
Contact:

Re: Golly 2.8b3 (Perl is dead, long live Lua)

Post by Andrew »

simsim314 wrote:I'm able to see the cube ...
Ok, that means the bug is specific to Golly. I've managed to build a debug version of Golly (64-bit) so please download this and give it a try:

http://www.trevorrow.com/golly/Golly-debug.zip

The zip file contains Golly-debug.exe and a corresponding .pdb file, so move those files to the same location as Golly.exe. Start up Golly-debug.exe and when it crashes you should get a dialog telling you the location of a crash report in the form of a file called Golly.xml, so please send that file to me (andrew@trevorrow.com).

(Don't ask me why it's in a .xml file -- that's what the wxDebugReport class decides to use. I'm staggered at how many hoops you have to jump through just to get a stack trace on Windows!)
Use Glu or Glui to explore CA rules on non-periodic tilings: DominoLife and HatLife and SpectreLife
User avatar
simsim314
Posts: 1828
Joined: February 10th, 2014, 1:27 pm

Re: Golly 2.8b3 (Perl is dead, long live Lua)

Post by simsim314 »

Andrew wrote:when it crashes you should get a dialog telling you the location of a crash report in the form of a file called Golly.xml, so please send that file to me
I've no dialog or golly.xml file in my system.

But I managed to enter disassembled code and see the stack trace for the exception, Check it out:

Code: Select all

>	nvoglv64.dll!0000000063c50ef9()	Unknown
 	[External Code]	
 	nvoglv64.dll!00000000637a9aec()	Unknown
 	nvoglv64.dll!00000000637aa6c8()	Unknown
 	Golly-debug.exe!DrawGridLines(int wd, int ht) Line 1097	C++
 	Golly-debug.exe!DrawView(int tileindex) Line 1559	C++
 	Golly-debug.exe!PatternView::OnPaint(wxPaintEvent & __formal) Line 2320	C++
 	Golly-debug.exe!wxAppConsoleBase::HandleEvent(wxEvtHandler * handler, void (wxEvent &) * func, wxEvent & event) Line 612	C++
 	Golly-debug.exe!wxAppConsoleBase::CallEventHandler(wxEvtHandler * handler, wxEventFunctor & functor, wxEvent & event) Line 624	C++
 	Golly-debug.exe!wxEvtHandler::ProcessEventIfMatchesId(const wxEventTableEntryBase & entry, wxEvtHandler * handler, wxEvent & event) Line 1394	C++
 	Golly-debug.exe!wxEventHashTable::HandleEvent(wxEvent & event, wxEvtHandler * self) Line 998	C++
 	Golly-debug.exe!wxEvtHandler::TryHereOnly(wxEvent & event) Line 1589	C++
 	Golly-debug.exe!wxEvtHandler::TryBeforeAndHere(wxEvent & event) Line 3671	C++
 	Golly-debug.exe!wxEvtHandler::ProcessEventLocally(wxEvent & event) Line 1522	C++
 	Golly-debug.exe!wxEvtHandler::ProcessEvent(wxEvent & event) Line 1495	C++
 	Golly-debug.exe!wxEvtHandler::SafelyProcessEvent(wxEvent & event) Line 1613	C++
 	Golly-debug.exe!wxWindowBase::HandleWindowEvent(wxEvent & event) Line 1526	C++
 	Golly-debug.exe!wxWindow::HandlePaint() Line 4857	C++
 	Golly-debug.exe!wxWindow::MSWHandleMessage(__int64 * result, unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 2856	C++
 	Golly-debug.exe!wxWindow::MSWWindowProc(unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 3645	C++
 	Golly-debug.exe!wxWndProc(HWND__ * hWnd, unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 2711	C++
 	[External Code]	
 	Golly-debug.exe!wxWindow::MSWSafeIsDialogMessage(tagMSG * msg) Line 2612	C++
 	Golly-debug.exe!wxWindow::MSWProcessMessage(tagMSG * pMsg) Line 2494	C++
 	Golly-debug.exe!wxGUIEventLoop::PreProcessMessage(tagMSG * msg) Line 148	C++
 	Golly-debug.exe!wxGUIEventLoop::ProcessMessage(tagMSG * msg) Line 166	C++
 	Golly-debug.exe!wxGUIEventLoop::Dispatch() Line 232	C++
 	Golly-debug.exe!wxEventLoopManual::ProcessEvents() Line 173	C++
 	Golly-debug.exe!wxEventLoopManual::DoRun() Line 206	C++
 	Golly-debug.exe!wxEventLoopBase::Run() Line 78	C++
 	Golly-debug.exe!wxAppConsoleBase::MainLoop() Line 334	C++
 	Golly-debug.exe!wxAppConsoleBase::OnRun() Line 260	C++
 	Golly-debug.exe!wxAppBase::OnRun() Line 305	C++
 	Golly-debug.exe!wxEntryReal(int & argc, wchar_t * * argv) Line 495	C++
 	Golly-debug.exe!wxEntry(int & argc, wchar_t * * argv) Line 188	C++
 	Golly-debug.exe!wxEntry(HINSTANCE__ * hInstance, HINSTANCE__ * __formal, char * __formal, int nCmdShow) Line 415	C++
 	Golly-debug.exe!WinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow) Line 74	C++
 	Golly-debug.exe!__tmainCRTStartup() Line 275	C
 	Golly-debug.exe!WinMainCRTStartup() Line 189	C
 	[External Code]	
EDIT: The final exception message is:

Unhandled exception at 0x0000000063C50EF9 (nvoglv64.dll) in Golly-debug.exe: 0xC000041D: An unhandled exception was encountered during a user callback.

I can actually go back in the call stack - that means the lines you see in the stack trace should mean something to you.

EDIT2 I've downloaded snapshot from the repository, but VS states it's not the same code. So if you have main.cpp and wxgolly.cpp for this release I could say what line exactly crashes in those files.
User avatar
Andrew
Moderator
Posts: 1066
Joined: June 2nd, 2009, 2:08 am
Location: Melbourne, Australia
Contact:

Re: Golly 2.8b3 (Perl is dead, long live Lua)

Post by Andrew »

simsim314 wrote:I've no dialog or golly.xml file in my system.
Sheesh -- clearly there are some big differences between Windows 7 and 10.
But I managed to enter disassembled code and see the stack trace for the exception
Excellent! I'd love to see the details on how you got the stack trace -- does it require tools in Visual Studio?

Anyway, it seems clear that the crash is occurring in nvoglv64.dll (ie. the NVidia OpenGL driver code):

Code: Select all

	nvoglv64.dll!0000000063c50ef9()	Unknown
 	[External Code]	
 	nvoglv64.dll!00000000637a9aec()	Unknown
 	nvoglv64.dll!00000000637aa6c8()	Unknown
 	Golly-debug.exe!DrawGridLines(int wd, int ht) Line 1097	C++
The DrawGridLines routine is in wxrender.cpp if you want to look at the code. The offending line is around here:

Code: Select all

            GLfloat points[] = {   -0.5, v-0.5,
                                 wd+0.5, v-0.5 };
            glVertexPointer(2, GL_FLOAT, 0, points);
            glDrawArrays(GL_LINES, 0, 2);
That's pretty simple OpenGL stuff so I don't think there's much I can do at my end to fix the crash. That code works fine on Win XP/7, Mac OS 10.6 to 10.11, Linux, iOS and Android, so I strongly suspect there is a bug in the nvoglv64.dll code. You could try updating your video card's software. Doing a Google search on "windows 10 GTX 970 crash in nvoglv64.dll" indicates there are known bugs in the nvidia drivers.

One other test might be worth trying: Quit Golly, edit your GollyPrefs file and set grid_lines=0, save, close and restart Golly. Now DrawGridLines won't be called so it would be interesting to see if it's just those OpenGL calls that are causing a problem.

EDIT: I forgot to mention that the reason Golly 2.7 works is that it doesn't use OpenGL.
Use Glu or Glui to explore CA rules on non-periodic tilings: DominoLife and HatLife and SpectreLife
User avatar
Nathaniel
Site Admin
Posts: 907
Joined: December 10th, 2008, 3:48 pm
Location: New Brunswick, Canada
Contact:

Re: Golly 2.8b3 (Perl is dead, long live Lua)

Post by Nathaniel »

Just letting you know that the 64-bit version works fine (or at least launches and has let me do minor tinkering so far) for me on Windows 10, so it is indeed something more specific than that.
User avatar
Andrew
Moderator
Posts: 1066
Joined: June 2nd, 2009, 2:08 am
Location: Melbourne, Australia
Contact:

Re: Golly 2.8b3 (Perl is dead, long live Lua)

Post by Andrew »

Nathaniel wrote:Just letting you know that the 64-bit version works fine ... for me on Windows 10
Thanks Nathaniel -- good to know! Can you provide some details on which type of video card is installed on your system? I might need to maintain a list of those cards that work with Golly and those that don't.
Use Glu or Glui to explore CA rules on non-periodic tilings: DominoLife and HatLife and SpectreLife
User avatar
Nathaniel
Site Admin
Posts: 907
Joined: December 10th, 2008, 3:48 pm
Location: New Brunswick, Canada
Contact:

Re: Golly 2.8b3 (Perl is dead, long live Lua)

Post by Nathaniel »

Andrew wrote:Can you provide some details on which type of video card is installed on your system?
Sure: AMD Radeon HD 8690A (it's an all-in-one PC)
User avatar
Andrew
Moderator
Posts: 1066
Joined: June 2nd, 2009, 2:08 am
Location: Melbourne, Australia
Contact:

Re: Golly 2.8b3 (Perl is dead, long live Lua)

Post by Andrew »

The top post now has a link to a 64-bit version for Linux.
Use Glu or Glui to explore CA rules on non-periodic tilings: DominoLife and HatLife and SpectreLife
User avatar
rowett
Moderator
Posts: 4596
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Golly 2.8b3 (Perl is dead, long live Lua)

Post by rowett »

I also get a crash on Windows 10 64bit with an NVIDIA graphics card. Using the debug build doesn't give me an xml file but I used WinDbg (install from here) to get a stack trace.
Once WinDbg is installed do the following:
  1. Run WinDbg
  2. File->Open Executable...
  3. Open Golly-debug.exe
  4. Debug->Go
Golly will then crash. In WinDbg type ~* kp

Code: Select all

0:000> ~* kp

.  0  Id: b18.1b20 Suspend: 1 Teb: 00000000`003dd000 Unfrozen
 # Child-SP          RetAddr           Call Site
00 00000000`0014dbc8 00000000`69d5f72c nvoglv64!DrvPresentBuffers+0x867700
01 00000000`0014dbd0 00000000`69d602fe nvoglv64+0xa4f72c
*** WARNING: Unable to verify checksum for Golly-debug.exe
02 00000000`0014dc20 00007ff7`d906e8bf nvoglv64+0xa502fe
03 00000000`0014dc70 00007ff7`d90701af Golly_debug!DrawGridLines(int wd = 0n2320, int ht = 0n1359)+0x42f [c:\users\akt\golly-debug\gui-wx\wxrender.cpp @ 1097]
04 00000000`0014dd70 00007ff7`d906784e Golly_debug!DrawView(int tileindex = 0n-1)+0x7ef [c:\users\akt\golly-debug\gui-wx\wxrender.cpp @ 1559]
05 00000000`0014ddf0 00007ff7`d936c1ab Golly_debug!PatternView::OnPaint(class wxPaintEvent * __formal = 0x00000000`0014e350)+0x25e [c:\users\akt\golly-debug\gui-wx\wxview.cpp @ 2320]
06 00000000`0014de60 00007ff7`d936c2ae Golly_debug!wxAppConsoleBase::HandleEvent(class wxEvtHandler * handler = 0x00000000`057f52f0, <function> * func = 0x00000000`0014dee0, class wxEvent * event = 0x00000000`0014e350)+0x3b [c:\wxwidgets-debug\src\common\appbase.cpp @ 612]
07 00000000`0014de90 00007ff7`d9381f63 Golly_debug!wxAppConsoleBase::CallEventHandler(class wxEvtHandler * handler = 0x00000000`057f52f0, class wxEventFunctor * functor = 0x00000000`02083960, class wxEvent * event = 0x00000000`0014e350)+0xee [c:\wxwidgets-debug\src\common\appbase.cpp @ 624]
08 00000000`0014df30 00007ff7`d9380c6e Golly_debug!wxEvtHandler::ProcessEventIfMatchesId(struct wxEventTableEntryBase * entry = 0x00007ff7`d9aa1920, class wxEvtHandler * handler = 0x00000000`057f52f0, class wxEvent * event = 0x00000000`0014e350)+0xd3 [c:\wxwidgets-debug\src\common\event.cpp @ 1394]
09 00000000`0014df70 00007ff7`d938242e Golly_debug!wxEventHashTable::HandleEvent(class wxEvent * event = 0x00000000`0014e350, class wxEvtHandler * self = 0x00000000`057f52f0)+0xfe [c:\wxwidgets-debug\src\common\event.cpp @ 998]
0a 00000000`0014dfd0 00007ff7`d9383949 Golly_debug!wxEvtHandler::TryHereOnly(class wxEvent * event = 0x00000000`0014e350)+0x6e [c:\wxwidgets-debug\src\common\event.cpp @ 1589]
0b 00000000`0014e010 00007ff7`d938228d Golly_debug!wxEvtHandler::TryBeforeAndHere(class wxEvent * event = 0x00000000`0014e350)+0x39 [c:\wxwidgets-debug\include\wx\event.h @ 3671]
0c 00000000`0014e050 00007ff7`d9382205 Golly_debug!wxEvtHandler::ProcessEventLocally(class wxEvent * event = 0x00000000`0014e350)+0x1d [c:\wxwidgets-debug\src\common\event.cpp @ 1522]
0d 00000000`0014e090 00007ff7`d93824c5 Golly_debug!wxEvtHandler::ProcessEvent(class wxEvent * event = 0x00000000`0014e350)+0x125 [c:\wxwidgets-debug\src\common\event.cpp @ 1495]
0e 00000000`0014e0f0 00007ff7`d918dfd5 Golly_debug!wxEvtHandler::SafelyProcessEvent(class wxEvent * event = 0x00000000`0014e350)+0x35 [c:\wxwidgets-debug\src\common\event.cpp @ 1613]
0f 00000000`0014e170 00007ff7`d91685ae Golly_debug!wxWindowBase::HandleWindowEvent(class wxEvent * event = 0x00000000`0014e350)+0x25 [c:\wxwidgets-debug\src\common\wincmn.cpp @ 1526]
10 00000000`0014e1a0 00007ff7`d916380d Golly_debug!wxWindow::HandlePaint(void)+0x3ce [c:\wxwidgets-debug\src\msw\window.cpp @ 4857]
11 00000000`0014e530 00007ff7`d9165133 Golly_debug!wxWindow::MSWHandleMessage(int64 * result = 0x00000000`0014ec60, unsigned int message = 0xf, unsigned int64 wParam = 0, int64 lParam = 0n0)+0x61d [c:\wxwidgets-debug\src\msw\window.cpp @ 2856]
12 00000000`0014ec30 00007ff7`d91631b9 Golly_debug!wxWindow::MSWWindowProc(unsigned int message = 0xf, unsigned int64 wParam = 0, int64 lParam = 0n0)+0x43 [c:\wxwidgets-debug\src\msw\window.cpp @ 3645]
13 00000000`0014ec80 00007ffd`eaae1169 Golly_debug!wxWndProc(struct HWND__ * hWnd = 0x00000000`00020aaa, unsigned int message = 0xf, unsigned int64 wParam = 0, int64 lParam = 0n0)+0xa9 [c:\wxwidgets-debug\src\msw\window.cpp @ 2711]
14 00000000`0014ecc0 00007ffd`eaae0aba USER32!UserCallWinProcCheckWow+0x1f9
15 00000000`0014edb0 00007ffd`c5d3b7fe USER32!CallWindowProcW+0x10a
16 00000000`0014ee00 00007ffd`eaae1169 OPENGL32!wglWndProc+0x4fe
17 00000000`0014ee80 00007ffd`eaae0ee2 USER32!UserCallWinProcCheckWow+0x1f9
18 00000000`0014ef70 00007ffd`eaaf0bee USER32!DispatchClientMessage+0xa2
19 00000000`0014efd0 00007ffd`eb0a8ba4 USER32!_fnDWORD+0x3e
1a 00000000`0014f030 00007ffd`eab027d4 ntdll!KiUserCallbackDispatcherContinue
1b 00000000`0014f0b8 00007ffd`eaae0d19 USER32!NtUserDispatchMessage+0x14
1c 00000000`0014f0c0 00007ffd`eaae3b8f USER32!DispatchMessageWorker+0x229
1d 00000000`0014f140 00007ff7`d9162edd USER32!IsDialogMessageW+0x10f
1e 00000000`0014f1a0 00007ff7`d9162c51 Golly_debug!wxWindow::MSWSafeIsDialogMessage(struct tagMSG * msg = 0x00000000`0014f3b0 {msg=0xf wp=0x0 lp=0x0})+0x18d [c:\wxwidgets-debug\src\msw\window.cpp @ 2612]
1f 00000000`0014f200 00007ff7`d92621cc Golly_debug!wxWindow::MSWProcessMessage(struct tagMSG * pMsg = 0x00000000`0014f3b0 {msg=0xf wp=0x0 lp=0x0})+0x441 [c:\wxwidgets-debug\src\msw\window.cpp @ 2494]
20 00000000`0014f300 00007ff7`d9262236 Golly_debug!wxGUIEventLoop::PreProcessMessage(struct tagMSG * msg = 0x00000000`0014f3b0 {msg=0xf wp=0x0 lp=0x0})+0x1ec [c:\wxwidgets-debug\src\msw\evtloop.cpp @ 148]
21 00000000`0014f350 00007ff7`d92624be Golly_debug!wxGUIEventLoop::ProcessMessage(struct tagMSG * msg = 0x00000000`0014f3b0 {msg=0xf wp=0x0 lp=0x0})+0x26 [c:\wxwidgets-debug\src\msw\evtloop.cpp @ 166]
22 00000000`0014f380 00007ff7`d9408a31 Golly_debug!wxGUIEventLoop::Dispatch(void)+0x25e [c:\wxwidgets-debug\src\msw\evtloop.cpp @ 232]
23 00000000`0014f440 00007ff7`d9408ae5 Golly_debug!wxEventLoopManual::ProcessEvents(void)+0x51 [c:\wxwidgets-debug\src\common\evtloopcmn.cpp @ 173]
24 00000000`0014f480 00007ff7`d9408772 Golly_debug!wxEventLoopManual::DoRun(void)+0xa5 [c:\wxwidgets-debug\src\common\evtloopcmn.cpp @ 206]
25 00000000`0014f520 00007ff7`d936b5bd Golly_debug!wxEventLoopBase::Run(void)+0xf2 [c:\wxwidgets-debug\src\common\evtloopcmn.cpp @ 78]
26 00000000`0014f5a0 00007ff7`d936b26c Golly_debug!wxAppConsoleBase::MainLoop(void)+0x8d [c:\wxwidgets-debug\src\common\appbase.cpp @ 334]
27 00000000`0014f610 00007ff7`d9252a50 Golly_debug!wxAppConsoleBase::OnRun(void)+0x1c [c:\wxwidgets-debug\src\common\appbase.cpp @ 260]
28 00000000`0014f640 00007ff7`d94267c2 Golly_debug!wxAppBase::OnRun(void)+0x30 [c:\wxwidgets-debug\src\common\appcmn.cpp @ 305]
29 00000000`0014f670 00007ff7`d93d9b7a Golly_debug!wxEntryReal(int * argc = 0x00007ff7`d9ac9b98, wchar_t ** argv = 0x00000000`020db940)+0x122 [c:\wxwidgets-debug\src\common\init.cpp @ 495]
2a 00000000`0014f710 00007ff7`d924c392 Golly_debug!wxEntry(int * argc = 0x00007ff7`d9ac9b98, wchar_t ** argv = 0x00000000`020db940)+0x2a [c:\wxwidgets-debug\src\msw\main.cpp @ 188]
2b 00000000`0014f750 00007ff7`d90ec33f Golly_debug!wxEntry(struct HINSTANCE__ * hInstance = 0x00007ff7`d8fa0000, struct HINSTANCE__ * __formal = 0x00000000`00000000, char * __formal = 0x00000000`00000000 "", int nCmdShow = 0n10)+0x82 [c:\wxwidgets-debug\src\msw\main.cpp @ 415]
2c 00000000`0014f7b0 00007ff7`d95a3d77 Golly_debug!WinMain(struct HINSTANCE__ * hInstance = 0x00007ff7`d8fa0000, struct HINSTANCE__ * hPrevInstance = 0x00000000`00000000, char * __formal = 0x00000000`0054323e "", int nCmdShow = 0n10)+0x2f [c:\users\akt\golly-debug\gui-wx\wxgolly.cpp @ 74]
2d 00000000`0014f7e0 00007ff7`d95a3c3e Golly_debug!__tmainCRTStartup(void)+0x127 [f:\dd\vctools\crt_bld\self_64_amd64\crt\src\crt0.c @ 275]
2e 00000000`0014f8b0 00007ffd`eaa38102 Golly_debug!WinMainCRTStartup(void)+0xe [f:\dd\vctools\crt_bld\self_64_amd64\crt\src\crt0.c @ 189]
2f 00000000`0014f8e0 00007ffd`eb05c5b4 KERNEL32!BaseThreadInitThunk+0x22
30 00000000`0014f910 00000000`00000000 ntdll!RtlUserThreadStart+0x34

   1  Id: b18.14f0 Suspend: 1 Teb: 00000000`003df000 Unfrozen
 # Child-SP          RetAddr           Call Site
00 00000000`0073f908 00007ffd`eb02b5e8 ntdll!NtWaitForWorkViaWorkerFactory+0x14
01 00000000`0073f910 00007ffd`eaa38102 ntdll!TppWorkerThread+0x298
02 00000000`0073fd20 00007ffd`eb05c5b4 KERNEL32!BaseThreadInitThunk+0x22
03 00000000`0073fd50 00000000`00000000 ntdll!RtlUserThreadStart+0x34

   2  Id: b18.1d40 Suspend: 1 Teb: 00000000`003e1000 Unfrozen
 # Child-SP          RetAddr           Call Site
00 00000000`0083f7d8 00007ffd`eb02b5e8 ntdll!NtWaitForWorkViaWorkerFactory+0x14
01 00000000`0083f7e0 00007ffd`eaa38102 ntdll!TppWorkerThread+0x298
02 00000000`0083fbf0 00007ffd`eb05c5b4 KERNEL32!BaseThreadInitThunk+0x22
03 00000000`0083fc20 00000000`00000000 ntdll!RtlUserThreadStart+0x34

   3  Id: b18.b1c Suspend: 1 Teb: 00000000`003e3000 Unfrozen
 # Child-SP          RetAddr           Call Site
00 00000000`0093f878 00007ffd`eb02b5e8 ntdll!NtWaitForWorkViaWorkerFactory+0x14
01 00000000`0093f880 00007ffd`eaa38102 ntdll!TppWorkerThread+0x298
02 00000000`0093fc90 00007ffd`eb05c5b4 KERNEL32!BaseThreadInitThunk+0x22
03 00000000`0093fcc0 00000000`00000000 ntdll!RtlUserThreadStart+0x34

   4  Id: b18.2098 Suspend: 1 Teb: 00000000`003e5000 Unfrozen
 # Child-SP          RetAddr           Call Site
00 00000000`142df518 00007ffd`eb02b5e8 ntdll!NtWaitForWorkViaWorkerFactory+0x14
01 00000000`142df520 00007ffd`eaa38102 ntdll!TppWorkerThread+0x298
02 00000000`142df930 00007ffd`eb05c5b4 KERNEL32!BaseThreadInitThunk+0x22
03 00000000`142df960 00000000`00000000 ntdll!RtlUserThreadStart+0x34

   5  Id: b18.cc8 Suspend: 1 Teb: 00000000`003e7000 Unfrozen
 # Child-SP          RetAddr           Call Site
00 00000000`143df6a8 00007ffd`eb02b5e8 ntdll!NtWaitForWorkViaWorkerFactory+0x14
01 00000000`143df6b0 00007ffd`eaa38102 ntdll!TppWorkerThread+0x298
02 00000000`143dfac0 00007ffd`eb05c5b4 KERNEL32!BaseThreadInitThunk+0x22
03 00000000`143dfaf0 00000000`00000000 ntdll!RtlUserThreadStart+0x34

   6  Id: b18.2a2c Suspend: 1 Teb: 00000000`003e9000 Unfrozen
 # Child-SP          RetAddr           Call Site
00 00000000`1461f5c8 00007ffd`eb02b5e8 ntdll!NtWaitForWorkViaWorkerFactory+0x14
01 00000000`1461f5d0 00007ffd`eaa38102 ntdll!TppWorkerThread+0x298
02 00000000`1461f9e0 00007ffd`eb05c5b4 KERNEL32!BaseThreadInitThunk+0x22
03 00000000`1461fa10 00000000`00000000 ntdll!RtlUserThreadStart+0x34

   7  Id: b18.970 Suspend: 1 Teb: 00000000`003eb000 Unfrozen
 # Child-SP          RetAddr           Call Site
00 00000000`1471f4d8 00007ffd`eb02b5e8 ntdll!NtWaitForWorkViaWorkerFactory+0x14
01 00000000`1471f4e0 00007ffd`eaa38102 ntdll!TppWorkerThread+0x298
02 00000000`1471f8f0 00007ffd`eb05c5b4 KERNEL32!BaseThreadInitThunk+0x22
03 00000000`1471f920 00000000`00000000 ntdll!RtlUserThreadStart+0x34

   8  Id: b18.494 Suspend: 1 Teb: 00000000`003ed000 Unfrozen
 # Child-SP          RetAddr           Call Site
00 00000000`1481f4d8 00007ffd`e8163b4f ntdll!NtWaitForMultipleObjects+0x14
01 00000000`1481f4e0 00007ffd`e8c2727f KERNELBASE!WaitForMultipleObjectsEx+0xef
02 00000000`1481f7e0 00007ffd`e8c37358 combase!WaitCoalesced(void * timer = 0x00000000`00000368, unsigned int cHandlesOuter = 0, void ** pHandles = 0x00000000`00000000, unsigned long delayInMs = <Value unavailable error>, unsigned long tolerableDelayInMs = 0xfa0, int alertable = 0n0, unsigned long * waitResult = 0x00000000`1481fac0)+0xb3 [d:\th\com\published\comutils\coalescedwait.cxx @ 72]
03 00000000`1481fa70 00007ffd`e8c27147 combase!CROIDTable::WorkerThreadLoop(void * param = 0x00000000`00000000)+0x78 [d:\th\com\combase\dcomrem\refcache.cxx @ 1619]
04 00000000`1481fac0 00007ffd`e8c37c4c combase!CRpcThread::WorkerLoop(void)+0x17f [d:\th\com\combase\dcomrem\threads.cxx @ 269]
05 00000000`1481fb30 00007ffd`eaa38102 combase!CRpcThreadCache::RpcWorkerThreadEntry(void * param = 0x00000000`005c6750)+0x7c [d:\th\com\combase\dcomrem\threads.cxx @ 76]
06 00000000`1481fb60 00007ffd`eb05c5b4 KERNEL32!BaseThreadInitThunk+0x22
07 00000000`1481fb90 00000000`00000000 ntdll!RtlUserThreadStart+0x34

   9  Id: b18.2f38 Suspend: 1 Teb: 00000000`003f9000 Unfrozen
 # Child-SP          RetAddr           Call Site
00 00000000`156cf6c8 00007ffd`e813aadf ntdll!NtWaitForSingleObject+0x14
01 00000000`156cf6d0 00000000`69e37d5a KERNELBASE!WaitForSingleObjectEx+0x8f
02 00000000`156cf770 00000000`69c03d0d nvoglv64!DrvValidateVersion+0x7e4a
03 00000000`156cf7a0 00000000`69c039c8 nvoglv64+0x8f3d0d
04 00000000`156cf7f0 00000000`69e39f07 nvoglv64+0x8f39c8
05 00000000`156cf820 00007ffd`eaa38102 nvoglv64!DrvValidateVersion+0x9ff7
06 00000000`156cf850 00007ffd`eb05c5b4 KERNEL32!BaseThreadInitThunk+0x22
07 00000000`156cf880 00000000`00000000 ntdll!RtlUserThreadStart+0x34

  10  Id: b18.1924 Suspend: 1 Teb: 00000000`003f1000 Unfrozen
 # Child-SP          RetAddr           Call Site
00 00000000`1507f638 00007ffd`e8163b4f ntdll!NtWaitForMultipleObjects+0x14
01 00000000`1507f640 00007ffd`eaaf2259 KERNELBASE!WaitForMultipleObjectsEx+0xef
02 00000000`1507f940 00007ffd`eaaf20db USER32!RealMsgWaitForMultipleObjectsEx+0x119
03 00000000`1507fa20 00000000`69e3323d USER32!MsgWaitForMultipleObjects+0x6b
04 00000000`1507fa70 00007ffd`eaa38102 nvoglv64!DrvValidateVersion+0x332d
05 00000000`1507fb90 00007ffd`eb05c5b4 KERNEL32!BaseThreadInitThunk+0x22
06 00000000`1507fbc0 00000000`00000000 ntdll!RtlUserThreadStart+0x34

  11  Id: b18.28c8 Suspend: 1 Teb: 00000000`003fb000 Unfrozen
 # Child-SP          RetAddr           Call Site
00 00000000`17bcf488 00007ffd`e8163b4f ntdll!NtWaitForMultipleObjects+0x14
01 00000000`17bcf490 00007ffd`e8163a4e KERNELBASE!WaitForMultipleObjectsEx+0xef
02 00000000`17bcf790 00000000`69e814a6 KERNELBASE!WaitForMultipleObjects+0xe
03 00000000`17bcf7d0 00007ffd`eaa38102 nvoglv64!DrvPresentBuffers+0x21096
04 00000000`17bcf820 00007ffd`eb05c5b4 KERNEL32!BaseThreadInitThunk+0x22
05 00000000`17bcf850 00000000`00000000 ntdll!RtlUserThreadStart+0x34
You can also get more details by typing analyze -v -f

Code: Select all

0:000> !analyze -v -f
*******************************************************************************
*                                                                             *
*                        Exception Analysis                                   *
*                                                                             *
*******************************************************************************


DUMP_CLASS: 2

DUMP_QUALIFIER: 0

FAULTING_IP: 
nvoglv64!DrvPresentBuffers+867700
00000000`6a6c7b10 488b040a        mov     rax,qword ptr [rdx+rcx]

EXCEPTION_RECORD:  (.exr -1)
ExceptionAddress: 000000006a6c7b10 (nvoglv64!DrvPresentBuffers+0x0000000000867700)
   ExceptionCode: c0000005 (Access violation)
  ExceptionFlags: 00000000
NumberParameters: 2
   Parameter[0]: 0000000000000000
   Parameter[1]: 0000000000000000
Attempt to read from address 0000000000000000

FAULTING_THREAD:  00001b20

DEFAULT_BUCKET_ID:  NULL_POINTER_READ

PROCESS_NAME:  Golly-debug.exe

ERROR_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%p referenced memory at 0x%p. The memory could not be %s.

EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%p referenced memory at 0x%p. The memory could not be %s.

EXCEPTION_CODE_STR:  c0000005

EXCEPTION_PARAMETER1:  0000000000000000

EXCEPTION_PARAMETER2:  0000000000000000

READ_ADDRESS:  0000000000000000 

FOLLOWUP_IP: 
nvoglv64!DrvPresentBuffers+867700
00000000`6a6c7b10 488b040a        mov     rax,qword ptr [rdx+rcx]

BUGCHECK_STR:  NULL_POINTER_READ

WATSON_BKT_PROCSTAMP:  573492bf

WATSON_BKT_MODULE:  nvoglv64.DLL

WATSON_BKT_MODSTAMP:  56716c31

WATSON_BKT_MODOFFSET:  13b7b10

WATSON_BKT_MODVER:  10.18.13.6143

MODULE_VER_PRODUCT:  NVIDIA Compatible OpenGL ICD

BUILD_VERSION_STRING:  10.0.10586.306 (th2_release_sec.160422-1850)

MODLIST_WITH_TSCHKSUM_HASH:  49ba2f65af6947e3792634f45297b2ad800c5db4

MODLIST_SHA1_HASH:  3bbb8062d1dacce1e97d4a038e335a7c0ef34fa5

NTGLOBALFLAG:  70

APPLICATION_VERIFIER_FLAGS:  0

PRODUCT_TYPE:  1

SUITE_MASK:  272

APP:  golly-debug.exe

ANALYSIS_SESSION_HOST:  OFFICE

ANALYSIS_SESSION_TIME:  05-22-2016 06:57:24.0195

ANALYSIS_VERSION: 10.0.10586.567 amd64fre

THREAD_ATTRIBUTES: 
OS_LOCALE:  ENG

PROBLEM_CLASSES: 



NULL_POINTER_READ
    Tid    [0x1b20]
    Frame  [0x00]: nvoglv64!DrvPresentBuffers


LAST_CONTROL_TRANSFER:  from 0000000069d5f72c to 000000006a6c7b10

STACK_TEXT:  
00000000`0014dbc8 00000000`69d5f72c : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`69c07d9b : nvoglv64!DrvPresentBuffers+0x867700
00000000`0014dbd0 00000000`69d602fe : 00000000`15386080 00000000`00000002 00000000`00000001 00007ff7`d906be12 : nvoglv64+0xa4f72c
00000000`0014dc20 00007ff7`d906e8bf : 00000000`00000000 00000000`0000000f 00000000`0014dec0 00000000`0014def0 : nvoglv64+0xa502fe
00000000`0014dc70 00007ff7`d90701af : 00000000`00000910 00000000`0000054f 00007ff7`d9aa22f0 00000000`00000000 : Golly_debug!DrawGridLines+0x42f
00000000`0014dd70 00007ff7`d906784e : 00000000`ffffffff 00000000`057e9830 00000000`0014de38 00007ff7`d9167423 : Golly_debug!DrawView+0x7ef
00000000`0014ddf0 00007ff7`d936c1ab : 00000000`057f52f0 00000000`0014e350 00000000`0014dfb8 00000000`00000000 : Golly_debug!PatternView::OnPaint+0x25e
00000000`0014de60 00007ff7`d936c2ae : 00000000`020dc3f0 00000000`057f52f0 00000000`0014dee0 00000000`0014e350 : Golly_debug!wxAppConsoleBase::HandleEvent+0x3b
00000000`0014de90 00007ff7`d9381f63 : 00000000`020dc3f0 00000000`057f52f0 00000000`02083960 00000000`0014e350 : Golly_debug!wxAppConsoleBase::CallEventHandler+0xee
00000000`0014df30 00007ff7`d9380c6e : 00007ff7`d9aa1920 00000000`057f52f0 00000000`0014e350 00007ff7`d958c18e : Golly_debug!wxEvtHandler::ProcessEventIfMatchesId+0xd3
00000000`0014df70 00007ff7`d938242e : 00007ff7`d9aa1d20 00000000`0014e350 00000000`057f52f0 00000000`0003d607 : Golly_debug!wxEventHashTable::HandleEvent+0xfe
00000000`0014dfd0 00007ff7`d9383949 : 00000000`057f52f0 00000000`0014e350 00000000`00000000 00007ff7`00000000 : Golly_debug!wxEvtHandler::TryHereOnly+0x6e
00000000`0014e010 00007ff7`d938228d : 00000000`057f52f0 00000000`0014e350 00000000`00000001 00007ff7`00000000 : Golly_debug!wxEvtHandler::TryBeforeAndHere+0x39
00000000`0014e050 00007ff7`d9382205 : 00000000`057f52f0 00000000`0014e350 00000000`00000002 00007ff7`d9019b92 : Golly_debug!wxEvtHandler::ProcessEventLocally+0x1d
00000000`0014e090 00007ff7`d93824c5 : 00000000`057f52f0 00000000`0014e350 00000000`00000018 00007ff7`d9130a53 : Golly_debug!wxEvtHandler::ProcessEvent+0x125
00000000`0014e0f0 00007ff7`d918dfd5 : 00000000`057f52f0 00000000`0014e350 ffffffff`00002770 00000000`057d6c60 : Golly_debug!wxEvtHandler::SafelyProcessEvent+0x35
00000000`0014e170 00007ff7`d91685ae : 00000000`057f52f0 00000000`0014e350 00000000`0000000f 00000000`00000001 : Golly_debug!wxWindowBase::HandleWindowEvent+0x25
00000000`0014e1a0 00007ff7`d916380d : 00000000`057f52f0 00000000`00000001 00000000`00000000 00000000`00000000 : Golly_debug!wxWindow::HandlePaint+0x3ce
00000000`0014e530 00007ff7`d9165133 : 00000000`057f52f0 00000000`0014ec60 00000000`0000000f 00000000`00000000 : Golly_debug!wxWindow::MSWHandleMessage+0x61d
00000000`0014ec30 00007ff7`d91631b9 : 00000000`057f52f0 00007ffd`0000000f 00000000`00000000 00000000`00000000 : Golly_debug!wxWindow::MSWWindowProc+0x43
00000000`0014ec80 00007ffd`eaae1169 : 00000000`00020aaa 00007ffd`0000000f 00000000`00000000 00000000`00000000 : Golly_debug!wxWndProc+0xa9
00000000`0014ecc0 00007ffd`eaae0aba : 00000000`0061be60 00007ff7`d9163110 00000000`00020aaa 00000000`00020aaa : USER32!UserCallWinProcCheckWow+0x1f9
00000000`0014edb0 00007ffd`c5d3b7fe : 00000000`0061be60 00000000`00000000 00000000`00000000 00000000`0000000f : USER32!CallWindowProcW+0x10a
00000000`0014ee00 00007ffd`eaae1169 : 00000000`00000000 00000000`0000000f 00000000`00000000 00007ffd`e5f270e0 : OPENGL32!wglWndProc+0x4fe
00000000`0014ee80 00007ffd`eaae0ee2 : 00000000`00000000 00007ffd`c5d3b300 00000000`00020aaa 00000000`00000000 : USER32!UserCallWinProcCheckWow+0x1f9
00000000`0014ef70 00007ffd`eaaf0bee : 00007ffd`eb0a4ff0 00000000`00000000 00000000`0014f088 00000000`00000001 : USER32!DispatchClientMessage+0xa2
00000000`0014efd0 00007ffd`eb0a8ba4 : 00000000`00000000 00007ffd`eaaed75f 00000000`0014f128 00000000`00000000 : USER32!_fnDWORD+0x3e
00000000`0014f030 00007ffd`eab027d4 : 00007ffd`eaae0d19 00000000`00000000 00007ffd`eb0a8ba4 00000000`00000000 : ntdll!KiUserCallbackDispatcherContinue
00000000`0014f0b8 00007ffd`eaae0d19 : 00000000`00000000 00007ffd`eb0a8ba4 00000000`00000000 00007ffd`eaae4f54 : USER32!NtUserDispatchMessage+0x14
00000000`0014f0c0 00007ffd`eaae3b8f : 00000000`003dc000 00000000`00000000 00000000`00000001 00000000`00000000 : USER32!DispatchMessageWorker+0x229
00000000`0014f140 00007ff7`d9162edd : 00007ff7`d95a3c30 00000000`00000000 00000000`00000000 00000000`003dc000 : USER32!IsDialogMessageW+0x10f
00000000`0014f1a0 00007ff7`d9162c51 : 00000000`057810d0 00000000`0014f3b0 00000000`05734558 00000000`0014f290 : Golly_debug!wxWindow::MSWSafeIsDialogMessage+0x18d
00000000`0014f200 00007ff7`d92621cc : 00000000`057810d0 00000000`0014f3b0 00000000`00000000 00000000`00000000 : Golly_debug!wxWindow::MSWProcessMessage+0x441
00000000`0014f300 00007ff7`d9262236 : 00000000`020e8760 00000000`0014f3b0 00000000`00000001 0000b2ff`1dab91e6 : Golly_debug!wxGUIEventLoop::PreProcessMessage+0x1ec
00000000`0014f350 00007ff7`d92624be : 00000000`020e8760 00000000`0014f3b0 00000000`00000000 00000219`150e3add : Golly_debug!wxGUIEventLoop::ProcessMessage+0x26
00000000`0014f380 00007ff7`d9408a31 : 00000000`020e8760 00000000`00000000 00000219`150e3add 00000000`0000010b : Golly_debug!wxGUIEventLoop::Dispatch+0x25e
00000000`0014f440 00007ff7`d9408ae5 : 00000000`020e8760 00000000`00000000 00000000`00000000 00007ff7`d917538d : Golly_debug!wxEventLoopManual::ProcessEvents+0x51
00000000`0014f480 00007ff7`d9408772 : 00000000`020e8760 00000000`020e8770 00000000`020e8700 00000000`020e8760 : Golly_debug!wxEventLoopManual::DoRun+0xa5
00000000`0014f520 00007ff7`d936b5bd : 00000000`020e8760 00000000`020dc5f8 00000000`020e8760 00000000`0014ece0 : Golly_debug!wxEventLoopBase::Run+0xf2
00000000`0014f5a0 00007ff7`d936b26c : 00000000`020dc3f0 00000000`00000103 0000b2ff`1dab8966 00007ff7`d939ca62 : Golly_debug!wxAppConsoleBase::MainLoop+0x8d
00000000`0014f610 00007ff7`d9252a50 : 00000000`020dc3f0 00000000`020db940 ffffffff`fffffffe 00007ff7`d924c2f5 : Golly_debug!wxAppConsoleBase::OnRun+0x1c
00000000`0014f640 00007ff7`d94267c2 : 00000000`020dc3f0 00000000`00000001 00000000`020db940 00007ff7`d95bbfd9 : Golly_debug!wxAppBase::OnRun+0x30
00000000`0014f670 00007ff7`d93d9b7a : 00007ff7`d9ac9b98 00000000`020db940 00007ff7`d924c490 00000000`0014f6f8 : Golly_debug!wxEntryReal+0x122
00000000`0014f710 00007ff7`d924c392 : 00007ff7`d9ac9b98 00000000`020db940 00007ff7`d924c490 00007ff7`00000065 : Golly_debug!wxEntry+0x2a
00000000`0014f750 00007ff7`d90ec33f : 00007ff7`d8fa0000 00000000`00000000 00000000`00000000 00000000`0000000a : Golly_debug!wxEntry+0x82
00000000`0014f7b0 00007ff7`d95a3d77 : 00007ff7`d8fa0000 00000000`00000000 00000000`0054323e 00000000`0000000a : Golly_debug!WinMain+0x2f
00000000`0014f7e0 00007ff7`d95a3c3e : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : Golly_debug!__tmainCRTStartup+0x127
00000000`0014f8b0 00007ffd`eaa38102 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : Golly_debug!WinMainCRTStartup+0xe
00000000`0014f8e0 00007ffd`eb05c5b4 : 00007ffd`eaa380e0 00000000`00000000 00000000`00000000 00000000`00000000 : KERNEL32!BaseThreadInitThunk+0x22
00000000`0014f910 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : ntdll!RtlUserThreadStart+0x34


THREAD_SHA1_HASH_MOD_FUNC:  dd64c0dbad501a05af03fff1d66d35acdb2b46a3

THREAD_SHA1_HASH_MOD_FUNC_OFFSET:  5eec79a787e0a6aba87198302f9db84b86ef763b

THREAD_SHA1_HASH_MOD:  0dc8eea2e5cf81228123c308e19c735e79d80e51

FAULT_INSTR_CODE:  a048b48

SYMBOL_STACK_INDEX:  0

SYMBOL_NAME:  nvoglv64!DrvPresentBuffers+867700

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: nvoglv64

IMAGE_NAME:  nvoglv64.DLL

DEBUG_FLR_IMAGE_TIMESTAMP:  56716c31

STACK_COMMAND:  ~0s ; kb

BUCKET_ID:  NULL_POINTER_READ_nvoglv64!DrvPresentBuffers+867700

PRIMARY_PROBLEM_CLASS:  NULL_POINTER_READ_nvoglv64!DrvPresentBuffers+867700

BUCKET_ID_OFFSET:  867700

BUCKET_ID_MODULE_STR:  nvoglv64

BUCKET_ID_MODTIMEDATESTAMP:  56716c31

BUCKET_ID_MODCHECKSUM:  1db213c

BUCKET_ID_MODVER_STR:  10.18.13.6143

BUCKET_ID_PREFIX_STR:  NULL_POINTER_READ_

FAILURE_PROBLEM_CLASS:  NULL_POINTER_READ

FAILURE_EXCEPTION_CODE:  c0000005

FAILURE_IMAGE_NAME:  nvoglv64.DLL

FAILURE_FUNCTION_NAME:  DrvPresentBuffers

BUCKET_ID_FUNCTION_STR:  DrvPresentBuffers

FAILURE_SYMBOL_NAME:  nvoglv64.DLL!DrvPresentBuffers

FAILURE_BUCKET_ID:  NULL_POINTER_READ_c0000005_nvoglv64.DLL!DrvPresentBuffers

TARGET_TIME:  2016-05-22T05:58:22.000Z

OSBUILD:  10586

OSSERVICEPACK:  0

SERVICEPACK_NUMBER: 0

OS_REVISION: 0

OSPLATFORM_TYPE:  x64

OSNAME:  Windows 10

OSEDITION:  Windows 10 WinNt SingleUserTS

USER_LCID:  0

OSBUILD_TIMESTAMP:  2015-10-30 02:27:54

BUILDDATESTAMP_STR:  160422-1850

BUILDLAB_STR:  th2_release_sec

BUILDOSVER_STR:  10.0.10586.306

ANALYSIS_SESSION_ELAPSED_TIME: e2bc

ANALYSIS_SOURCE:  UM

FAILURE_ID_HASH_STRING:  um:null_pointer_read_c0000005_nvoglv64.dll!drvpresentbuffers

FAILURE_ID_HASH:  {07bce3d1-6f38-0f2e-2627-392e93a740c8}

Followup:     MachineOwner
---------

User avatar
simsim314
Posts: 1828
Joined: February 10th, 2014, 1:27 pm

Re: Golly 2.8b3 (Perl is dead, long live Lua)

Post by simsim314 »

It also doesn't work on Windows7 with NVIDIA Geforce 210. But it opens a window and gets stuck - not crashes.

EDIT checked 32 and 64 bit, as well as goly-debug.exe is not creating golly.xml in both cases. Looks like the same problem.
User avatar
Andrew
Moderator
Posts: 1066
Joined: June 2nd, 2009, 2:08 am
Location: Melbourne, Australia
Contact:

Re: Golly 2.8b3 (Perl is dead, long live Lua)

Post by Andrew »

rowett wrote:I also get a crash on Windows 10 64bit with an NVIDIA graphics card. ...
Same crash as simsim314. Thanks for the extra stack trace info but it doesn't really tell me anything new. The crash is clearly in the nvoglv64.dll code.

Can you please do the test I suggested above: Create a GollyPrefs file (no extension) in the same location as Golly.exe containing just a single line:

Code: Select all

grid_lines=0
Then see if Golly.exe starts up and renders patterns ok (try icon and non-icon mode). The DrawGridLines routine won't be called so it will be very useful to know if the crash only occurs when making the OpenGL calls to draw lines.

Can you also tell me the version number of your video card's driver software?

I've seen numerous reports of very similar crashes in other software on Windows machines that use NVidia cards. In some of those cases the crash has been fixed by updating the driver software. For example, see:

http://www.digitaltutors.com/forum/arch ... 40834.html

Or you might need to go back to an older driver. This post suggests that version 296.10 is more reliable:

http://www.sonycreativesoftware.com/for ... eid=899143

Driver versions can be downloaded from here:

http://www.nvidia.com/Download/index.aspx
Use Glu or Glui to explore CA rules on non-periodic tilings: DominoLife and HatLife and SpectreLife
User avatar
rowett
Moderator
Posts: 4596
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Golly 2.8b3 (Perl is dead, long live Lua)

Post by rowett »

Andrew wrote:Can you please do the test I suggested above: Create a GollyPrefs file (no extension) in the same location as Golly.exe containing just a single line:

Code: Select all

grid_lines=0
Then see if Golly.exe starts up and renders patterns ok (try icon and non-icon mode). The DrawGridLines routine won't be called so it will be very useful to know if the crash only occurs when making the OpenGL calls to draw lines.
Done and now Golly starts fine with no crash. Turning icons on and off also works.

Interestingly once it has started you can then switch grid lines on via the View menu and it works. So it appears to only crash when grid lines are on at start up.
Andrew wrote:Can you also tell me the version number of your video card's driver software?
I have a GeForce GTX 770 with driver version 365.19.
User avatar
simsim314
Posts: 1828
Joined: February 10th, 2014, 1:27 pm

Re: Golly 2.8b3 (Perl is dead, long live Lua)

Post by simsim314 »

rowett wrote:Done and now Golly starts fine with no crash.
Woo hoo! My golly starts too, and I can also enable the grid lines afterwards. But if I close and open golly it saves new GollyPrefs and crashes, so I just need to set grid_lines=0 again.

Is it possible to load grid lines in the end of folly load? In C# there is similiar issue, when you draw before the window completely loaded it crashes, so people use On_Paint event, instead On_Load to draw stuff.
User avatar
Andrew
Moderator
Posts: 1066
Joined: June 2nd, 2009, 2:08 am
Location: Melbourne, Australia
Contact:

Re: Golly 2.8b3 (Perl is dead, long live Lua)

Post by Andrew »

rowett wrote:Interestingly once it has started you can then switch grid lines on via the View menu and it works. So it appears to only crash when grid lines are on at start up.
Very useful clue -- thanks! Sounds like the nvidia driver is failing to initialize something on the 1st window update. I should be able to avoid the bug by doing an initial update with grid lines off then another update with them on (only if grid_lines=1). Until then, please try the following work arounds:

1. Edit GollyPrefs and set grid_lines=1. Try starting up Golly by opening a .rle file (use a small pattern so that grid lines will be drawn). Does it crash?

2. Create a script called golly-start.lua in the same folder as Golly.exe with these commands:

Code: Select all

local g = golly()
if g.getoption("showgrid") == 1 then
    g.setoption("showgrid",0)
    -- do an initial update with grid lines off to avoid crash in nvidia driver
    g.update()
    g.setoption("showgrid",1)
    -- another update will occur after the script finishes
end
golly-start.lua is automatically executed when Golly starts up, so try it and see what happens.

3. I'm not 100% confident about the above 2 but this one should definitely work. Edit GollyPrefs and
set both grid_lines=1 and (further down the file) new_mag=0. The latter is equivalent to going to Prefs > File and setting the initial scale to 1:1 when creating a new pattern. This will avoid grid lines being drawn when Golly starts up.
Use Glu or Glui to explore CA rules on non-periodic tilings: DominoLife and HatLife and SpectreLife
User avatar
Andrew
Moderator
Posts: 1066
Joined: June 2nd, 2009, 2:08 am
Location: Melbourne, Australia
Contact:

Re: Golly 2.8b3 (Perl is dead, long live Lua)

Post by Andrew »

simsim314 wrote:Woo hoo! My golly starts too, and I can also enable the grid lines afterwards. But if I close and open golly it saves new GollyPrefs and crashes, so I just need to set grid_lines=0 again.
Try one of the above work arounds and let me know which one works (they might all work!).
Is it possible to load grid lines in the end of folly load? In C# there is similiar issue, when you draw before the window completely loaded it crashes, so people use On_Paint event, instead On_Load to draw stuff.
I'm using wxWidgets for all the GUI stuff so I don't really know what native Windows code is being called by the high-level wx routines. The viewport is being drawn from a wx OnPaint event handler, so I assume that's equivalent to the On_Paint event you're talking about.
Use Glu or Glui to explore CA rules on non-periodic tilings: DominoLife and HatLife and SpectreLife
User avatar
simsim314
Posts: 1828
Joined: February 10th, 2014, 1:27 pm

Re: Golly 2.8b3 (Perl is dead, long live Lua)

Post by simsim314 »

Andrew wrote:The viewport is being drawn from a wx OnPaint event handler, so I assume that's equivalent to the On_Paint event you're talking about.
Maybe you can draw grid lines even later? are there events that raised up after OnPaint? From my experience windows is troublemaker concerning painting on form while loading.
Andrew wrote:Try one of the above work arounds and let me know which one works (they might all work!).
The all don't work!
Trying opening even large files that don't show the grid at all, still fails if grid_lines=1 (it shouldn't draw grid lines yet it fails).

I've written this script in python (it works fine with grid_lines=0 but fails with 1):

Code: Select all

import golly as g

g.note("edsdsds")

if g.getoption("showgrid") == 1:
    g.setoption("showgrid",0)
    g.update()
    g.setoption("showgrid",1)
The note is also not shown.

EDIT

The trick with new_mag half working.

Code: Select all

grid_lines=1
new_mag=0
If I draw in golly immediately after golly starts It works fine, I can zoom in and see the grid. But if I immediately zoom in in the empty universe, golly crashes (no xml created with golly-debug).
User avatar
Andrew
Moderator
Posts: 1066
Joined: June 2nd, 2009, 2:08 am
Location: Melbourne, Australia
Contact:

Re: Golly 2.8b3 (Perl is dead, long live Lua)

Post by Andrew »

simsim314 wrote:The all don't work!
Trying opening even large files that don't show the grid at all, still fails if grid_lines=1
I thought that might happen. When you start up Golly by opening a file it isn't actually loaded until the 1st OnIdle event. There must be an OnPaint event before that idle event. Ditto for a golly-start.lua/py script.
The trick with new_mag half working. ...
If I draw in golly immediately after golly starts It works fine, I can zoom in and see the grid. But if I immediately zoom in in the empty universe, golly crashes
Another useful clue! To avoid the crash it looks like Golly will have to do the OpenGL calls that draw cells before doing the calls that draw grid lines. I think I should be able to draw (and erase!) a cell before the very 1st DrawGridLines call. I'll try to do a build for you and Chris to test in the next day or so.
Use Glu or Glui to explore CA rules on non-periodic tilings: DominoLife and HatLife and SpectreLife
Post Reply