seems everytime "whois" is typed the mud crashes, the dump file looks like this,
Exception: STATUS_ACCESS_VIOLATION at eip=610BA041
eax=00000000 ebx=00000001 ecx=FFFFFFFF edx=00000203 esi=FFFFFFFF edi=00000203
ebp=00228E78 esp=00228E74 program=C:\Jspec\area\smaug.exe
cs=001B ds=0023 es=0023 fs=003B gs=0000 ss=0023
Stack trace:
Frame Function Args
00228E78 610BA041 (00000203, 0022A2EE, 0042DEE7, 00000001)
0022A308 610C1023 (610CB050, 0022A340, 0042DED0, 0022C3FC)
0022A328 610BF70C (0022A340, 0042DED0, 0022C3E8, 0022A370)
0022A3B8 610C147D (0022A3D0, 0042DED0, 0022C3E8, 61088F03)
0022C3D8 00492ABE (0A1A1E60, 0042DED0, 0A19B078, 0A1A2360)
0022E428 0042E47E (0A1A1E60, 0022F8E6, 0A19B078, 0022F080)
0022F898 004DF09F (0A1A1E60, 0022F8E6, 005CE6B0, 0022F794)
0022FCF8 00493A1A (005D3A60, 00000000, 000001FB, 0022FD38)
0022FDC0 00492FD8 (00000001, 0A041198, 0A040328, 61064E90)
0022FF40 61007408 (610D1F58, FFFFFFFE, 0000002C, 610D1E7C)
0022FF90 610076ED (00000000, 00000000, 80430F47, 00000000)
0022FFB0 0056E642 (00492BD0, 037F0009, 0022FFF0, 77E9CA90)
0022FFC0 0040103C (00000000, 00000000, 7FFDF000, 00000000)
0022FFF0 77E9CA90 (00401000, 00000000, 000000C8, 00000100)
End of stack trace
what could be causing this?
Virtually anything?
Try compiling with debugging turned on (option -g) and you might get a more meaningful stack trace.
hrm no luck, I'v decided to just start from scratch and use my list of changes to rebuild from the ground up I figure my experiance thus far should give me a better start from when I first started thanks anyway thou blah how depressing.
Damn that sucks.....
So after reading this post Ive made the rather obvious decision to start making backups once per week, so if I screw something up bad enough that I cant fix I wont have to go back too far. Question is, would just making copies of my entire SmaugFuss folder be sufficient to do this? Then if i get a fatal error, just delete the entire directory that Im currently working on and compile the most recent backup copy?
Go with a form of source control (Subversion, CVS, BZR?) and you can just revert your changes back if something messes up.
You really didn't need to start over. Gdb would have helped you fix the bug, and we're here to help out with it.
Copying the entire SMAUG directory is kind of overkill. You probably only need to copy the src directory. If you're editing areas and want those backed up, you'll need 'area' and 'building'. For skills etc., 'system'.
But that said, I would very very very strongly recommend that you use version control instead like Kiasyn suggested. You will need an hour or two to get the hang of it, but then you'll be set...
I'd recommend bzr, it's extremely easy to start new projects using bzr.
Just navigate to the root of your project, and then do
bzr init .
then you'll want to add your files:
bzr add .
then, after modifying something:
bzr commit -m "this is what I did" the_file_i_edited.c
or
bzr commit -m "I did a bunch of stuff" file1.c file2.c file3.c
well anyhow, there are lots of guides on this kind of stuff, that's just an example.
I too would cast my vote in support of using version control. As Zeno pointed out you can just compile with debugging turned on and use gdb (with our help available too) to solve most things, but having some form of version control in place makes most of your life much easier and provides a ready backup on each other computer that access the repository too.
As for which form of version control, there are easily as many opinions available on that as there are forms of version control to choose from, pretty much any of them will work for you, it's really a matter of which one you like the best.
As for which parts of your mud to make backups of, I'd say it's best to make routine backups of your whole mud (smaugfuss/*) and you'll probably only need to version control your src folder but it doesn't hurt anything particularly to add any other folders you'd like to your repository, I've even seen at least one mud where the entire smaugfuss/ was in the repository, but you probably really don't need/want to include certain folders like the players folder that gets changed/added to so frequently or the colors folder that almost never changes and isn't really critical anyway or the.. well, you get the idea. ;)
The thing to remember with version control is that everytime you (or the mud or another member of your staff) causes anything in a folder that's included in your repository to change, you'll want to "check-in" those changes so you've got up to date versions in your repository and so you can tag those changes with a note regarding what changed and/or why, so if you include folders that change irrelevantly constantly (like /players/) you'll be checking in changes more often than you need to and folders that don't ever change (like /docs/) really don't need to be worried about.