Temple of The Roguelike Forums
Development => Programming => Topic started by: Krice on October 14, 2007, 02:42:35 PM
-
This must be it. This is the third day I try to find it and no luck this far. It's probably buffer overrun (with random crashes) so it can be almost anywhere.. I'm going through all raw arrays, I have quite a lot of them. This bug has existed for some time now so it's not obvious that it's a result of recent changes.
-
Buffer overruns, a plague of c/c++ coding. Probably a result of using too much c code in you c++ program.
I have a habit of using things like char buf[64] embedding in my code because I am too lazy to write using streams or strings.
Good luck, null pointers and stack corruption are nightmares indeed.
-
The worst bugs I've had have been with dangling pointers invalidating other parts of my code. These are a nightmare because they wreck some completely unrelated piece of code.
-
My worst bugs are ones that other people find and I can't replicate. Usually these types of bugs have no obvious reason for them occuring, which makes them just a bit more difficult to work out.
What's happened to your blog, Krice? It's been 404'd for a couple of days.
-
What's happened to your blog, Krice? It's been 404'd for a couple of days.
Deleted it completely.
-
Why? :\
-
Why? :\
I'm writing too much stuff anyway.
-
For me, most of the worst bugs have been related to uninitialized variables. They're one of the hardest kind of bugs to find, because they produce intermittent behavior, AND they act differently in the debugger (where they typically get initialized to 0) as opposed to release, which makes finding them super difficult.
-
they act differently in the debugger (where they typically get initialized to 0) as opposed to release, which makes finding them super difficult.
Can't you make the compiler warn about uninitialized variables? You can do that in VC++ which has W3 by default, but when you turn on W4 you get warnings from even potential uninitialized variables (along with zillions of type conversions..).
-
-Wall for gcc does it also.
And best of all: good practice! ;)
-
Fixed one buffer overrun and the bug seems to be gone, at least doesn't appear that often. This buffer overrun wasn't from for-loop but adding pos+offset where offset had too big values (actually the offset was using a wrong variable so I fixed that).
-
Worst bug I had was also the stupidest ever... Game was crashing randomly for some unknown reason, but usually it didn't.
Eventually I found (by implementing more movement AI) that movement code was not being checked and creatures sometimes tried to move off the map edges.
The display code then tried to draw them .. and crash.
Lesson: assert that values of parameters and return values for functions are in the allowable range before using them.
-
This bug has existed for some time now so it's not obvious that it's a result of recent changes.
I suppose you've figured this out by now, but it is CRUCIAL to fix random crashes immediately. It saves so much time, since you have a fairly good idea of what might've caused the crash.
-
I suppose you've figured this out by now, but it is CRUCIAL to fix random crashes immediately.
I believe everything can be fixed later, also fatal bugs. I just can't spend weeks finding one damn bug, the content development must go on. Besides there are still some bad procedural constructions like raw arrays and I'm planning to fix them as I proceed in the development so hopefully that will fix the bug.
-
The keyword here is Random, not Fatal; if you push on development the codebase will grow bigger and thus the bug will be harder to find.
-
if you push on development the codebase will grow bigger and thus the bug will be harder to find.
Well I guess it's in the existing code..
-
The bug described in the first message still exists. It's crashing the program in one particular point about half of the test runs. It's very annoying. When I watch some variables it seems that usually it's crashing when a staff is created for the player. No idea why. Maybe there is something wrong with staff data, but more probably it has nothing to do with that, but something else is corrupting item data area.
It's crashing when item data is required so I should probably write test code that just fetches something from item data and then place that code along the trace of running program. Slow, but could help find when the item data area is corrupted (I think VC++ doesn't have this kind of option).
-
Buffer overruns, dangling pointers, uninitialised variables... one reason to use C++ is that you don't need to have any of these things (maybe the occasional use of pointers for efficiency, but try to avoid it).
Always use vectors instead of arrays (you can make an exception for dungeon maps).
Always access objects in vectors using the index (a downside of using arrays is that pointers are dangerous, unlike in C-style arrays, because vectors can reallocate).
Try to use vectors in preference to lists. Lists tempt you to use pointers.
Always initialise variables in the constructor (exceptions can be made for really small classes such as Point, Rect, etc.).
Whatever you do there will still be bugs. Chase them hard when you see them. Sometimes when you have a baffling bug, when you wake up ater a night's sleep you will know the cause.
-
If it is crashing half your test runs, you should be able to find it. Try giving the player a sword instead of a staff - does that fix it?
Try setting a breakpoint just before the bug happens and stepping through the code a line at a time, until you find what line the crash happens on. What error message do you get?
Then step through very carefully from a little before that, looking at all the variables.
-
My code isn't really long enough to have bugs yet. It's a collection of various small programs (system dependant i/o stuff in a header; a CA cave generator; a turn program with only an 8-directional move, stay still or quit function; and a splash screen) and I've only just started slotting things together.
I had one bug when I started developing earlier this year. Turned out to be a fatal error in my compiler and I had to download a new compiler. That's was a pooper.
I had a real bug when I started developing again over the weekend. It was a stupid mistake and one that was quickly fixed. My little @man wasn't deleting his old self after moving. It turns out that I was deleting the wrong square, I forgot to reset the cursor after printing the '@' character so I was deleting an empty space to the right of the previous '@'. I'm sure I have a lot worse bugs waiting around the corner for me.
-
Try setting a breakpoint just before the bug happens and stepping through the code a line at a time, until you find what line the crash happens on.
I was able to trace back it to Create_Rooms and the routine searching through room tiles, generating a list and then possibly randomly selecting a location from room. But I don't know what is the actual bug.
-
Horrific.
Right in front of memory corruption that occurs randomly and plagues you for months or years (I'm suffering this - I think. Hard to keep track) without solution, is the bug that has no solution at all: those that are apparently due to your language (I'm amongst those working on an RPG engine in FreeBASIC) or prehaps some library you're using, and comes and goes depending on the month of the year.
Specifically, I and about 20% of users randomly get freezing when loading the game or quitting. OK, this isn't that bad, but it appears to be somehow due to reading data from files, and from past experience with FB (which is young and buggy, especially in the RTlib which eventually appeared to be the cause for a very similar bug that lasted a year), I blame my language and/or OS (observed in windows only so far). It doesn't seem to happen at any specific point in the loading code, just... randomly anywhere. What sort of bug report do I file?
Is it possible to investigate a hung program with a debugger? I can't gdb to work. Isn't gdb meant to support running its interactive prompt in a separate thread?
Bad bugs in libraries (like SDL_Mixer, which really sucks) can necessitate switching libraries, at possibly huge expense.
-
I blame my language and/or OS (observed in windows only so far).
I guess it's very rare that something is wrong in language generated code. You may start to suspect this when you just can't find the bug, but it's always there.
It doesn't seem to happen at any specific point in the loading code, just... randomly anywhere.
Loading routines are one possible reasons for buffer overruns. You might think that proper amount of data is loaded, but it's still loading too much, past the end of buffer.
By the way, I think I finally found the fatal bug in Kaduria. At least I know one possible location where to find it if it's still crashing.
-
If you suspect you have a bug to do with fileIO, check that you're reading/writing in the correct format (ie binary/text) I had a bug once where I didn't specify to open a binary file and reading from it worked *most* of the time. Forcing it to read in binary fixed the issue.
-
Not so much as bug as a warning that I keep getting, constantly, but doesn't appear to affect anything. Apparently something is wrong in xlocinfo.h, something that I have never touched in my life (haven't been coding long enough to even understand some of the stuff in there let alone risk poking around with it). I assume from the name is does something when I call my f_SetCursorPos() function (an integral part of my Roguelikes system dependant i/o library which does pretty much what you'd expect it to). Hasn't broken anything yet so I'm ignoring it.
-
In code part of a map generator, there was a variable named
"mmap[64][64]"
I spend a day polishing the generator and enjoing the win32 builds, but Linux version did not even launched(no errors from compiler). After few hours of debugging I found that mmap variable is some sort of reserved stuff in linux headers (I believe it refers to the memory mapping).
-
Yeah, mmap is a pretty standard system call in unix. It's part of the posix spec, if I recall.
-
(http://img78.imageshack.us/img78/517/emptyslotpd8.png)
Never drop it, ok? :)
-
Which one?
- Infinite loop while the AI tries to reload its firearm (See player -> fire weapon -> no ammo -> reload -> no ammo in inventory -> see player... etc. Forgot to use the AI fire/reload routine not the player fire/reload routine Doh!)
- A* path finder worked backwards (errr, you're supposed to chase me, not run away from me?)
- Could throw items through/into walls (Errr, my grenade's on the other side of the wall? How'd that happen)
- Give the player an extra "process" in the priority queue when changing levels ("Why aren't the monsters moving?")
- Not giving the player presence when changing levels (my spirit moved levels, why did I leave my body behind? And why are the monsters shooting the stairs?)
- Player starts embedded in an impassable item (It's OK, he can walk out of it, just not back)
There's probably more, but those are among the most humorous that I've already fixed - there are probably some more in there somewhere.
Oh the trials of learning a new language on the fly while writing your first roguelike.
-
Double post, sorry:)
-
I guess the reason for my buffer overruns was the "secure" version of sprintf (sprintf_s) in MSVC which in fact was overwriting memory with hex FC. This was because the secure version first clears the buffer size with FC. (or FA, don't remember exactly). I actually saw those mysterious FC's appearing in data when debugging and I wondered a long time where the heck they were coming. So then I replaced every secure version with old school sprintf and the random crashes went away. It's possible that sprintf may cause buffer overruns, but I have to check them later and maybe write a manual overrun check just to be sure.
Also I try to use std::string when possible.
-
I guess the reason for my buffer overruns was the "secure" version of sprintf (sprintf_s) in MSVC which in fact was overwriting memory with hex FC. This was because the secure version first clears the buffer size with FC. (or FA, don't remember exactly). I actually saw those mysterious FC's appearing in data when debugging and I wondered a long time where the heck they were coming. So then I replaced every secure version with old school sprintf and the random crashes went away. It's possible that sprintf may cause buffer overruns, but I have to check them later and maybe write a manual overrun check just to be sure.
Also I try to use std::string when possible.
I try to use streams for things like this, but I find it so much quicker to use c code. As long as you know what you are doing ignore the secure versions and switch off the warning message.
-
The weirdest bug I've had is in the hexagonal roguelike I'm making. Whenever the display is smaller than the dungeon (so part of it wraps around), you can't use any uppercase commands. I think the uppercase letters are getting converted to lowercase. When you save and reload the game, it's fine.
I have absolutely no idea what is causing this.
-
My most obscure big was one where the player lost hitpoints inexplicably from time to time. Turned out I left a pointer to the player on the stairs when he left a level, so the monsters could still attack that. It was only a lucky guess that found it for me.
-
I got another weird bug. When I told my game to not generate any enemies, it generated exactly one rat and one gnoll. This was due to me forgetting to initialize a variable.
-
I had a bug once when I was learning some DirectX 7 stuff that would reset my computer!
If I remember correctly I was sending malformed information into the index buffer. That was a real painfull once to fix.
-
While not exactly a coding bug....
I just tried to merge two partitions on my harddrive, and of course it crashed halfway through, leaving me with one original partition and two missing ones. Of course the missing ones contained my digital photo collection and about 10 semi-edited videos of home movies. (that I of course have not backed up)
Anyway in the process of finding some software to repair my file partition table I downloaded about 50 viruses, trojens and malware. I somehow found my photo partition and recovered it but my video partition is gone bye bye. I guess I can recover the files using some software but that means I need a new harddrive to dump it to. Not a bad idea because windows is now screwy thanks to the viruses. It wont let me reinstall windows as I get a random error. Internet Explorer has been hyjacked and a lot of google pages wont show up at all or a redirected. My expensive (but free) virus scanner hasn't yet found every thing and I cant install spybot for some reason.
Like I said not exactly a bug...
Fun stuff, thanks you very much partition magic!
-
You might want to get hold of HiJackThis (errr, Google it? Or just go here (http://www.trendsecure.com/portal/en-US/tools/security_tools/hijackthis) :) ) and post a log on one of the many forums that helps (or post it to me and I'll make suggestions)
Scautura
-
Thanks I will give hiJackthis a go.
-
Here it is.
mwssvc.exe looks bad, dont it?
I cant get rid of the damn thing. Well I have tried deleting it. Next to search that internet thing for a answer.
Also google is hyjacked by ecata.info. Urrrrggghhhhh!
Also I cant access malwarebytes or spybot homepages, how can anything be this smart? I mean what ever has taken hold of my computer is a real nasty peice of work.
Logfile of Trend Micro HijackThis v2.0.2
Scan saved at 11:25:18 PM, on 1/13/2009
Platform: Windows XP SP3 (WinNT 5.01.2600)
MSIE: Internet Explorer v7.00 (7.00.5730.0013)
Boot mode: Normal
Running processes:
C:\WINDOWS\System32\smss.exe
C:\WINDOWS\system32\winlogon.exe
C:\WINDOWS\system32\services.exe
C:\WINDOWS\system32\lsass.exe
C:\WINDOWS\system32\Ati2evxx.exe
C:\WINDOWS\system32\svchost.exe
C:\WINDOWS\System32\svchost.exe
C:\WINDOWS\system32\spoolsv.exe
C:\Program Files\Trend Micro\BM\TMBMSRV.exe
C:\WINDOWS\system32\CTsvcCDA.EXE
C:\Program Files\Intel\Intel Application Accelerator\iaantmon.exe
C:\Program Files\Common Files\Microsoft Shared\VS7Debug\mdm.exe
C:\Program Files\Microsoft LifeCam\MSCamS32.exe
C:\Program Files\Trend Micro\Internet Security\SfCtlCom.exe
C:\WINDOWS\system32\svchost.exe
C:\Program Files\Trend Micro\Internet Security\TmPfw.exe
C:\Program Files\Trend Micro\Internet Security\TmProxy.exe
C:\WINDOWS\system32\MsPMSPSv.exe
C:\Program Files\Trend Micro\Internet Security\UfSeAgnt.exe
C:\Program Files\Common Files\Symantec Shared\Security Center\SymWSC.exe
C:\Program Files\Canon\CAL\CALMAIN.exe
C:\WINDOWS\Explorer.EXE
C:\Program Files\Intel\Intel Application Accelerator\iaanotif.exe
C:\Program Files\Intel\Modem Event Monitor\IntelMEM.exe
C:\Program Files\Creative\Sound Blaster Live! 24-bit\Surround Mixer\CTSysVol.exe
C:\WINDOWS\system32\Rundll32.exe
C:\WINDOWS\system32\dla\tfswctrl.exe
C:\WINDOWS\vVX1000.exe
C:\WINDOWS\system32\ctfmon.exe
C:\Program Files\TortoiseSVN\bin\TSVNCache.exe
C:\WINDOWS\system32\wuauclt.exe
C:\Program Files\Trend Micro\Internet Security\UfNavi.exe
C:\Program Files\Trend Micro\Internet Security\UfNavi.exe
C:\WINDOWS\system32\msiexec.exe
C:\Program Files\Java\jre6\bin\jusched.exe
C:\Program Files\Java\jre6\bin\jqs.exe
C:\Program Files\Internet Explorer\iexplore.exe
C:\Documents and Settings\Chris\Desktop\HiJackThis.exe
R1 - HKCU\Software\Microsoft\Internet Explorer\Main,Default_Page_URL = http://www.dell.com
R1 - HKLM\Software\Microsoft\Internet Explorer\Main,Default_Page_URL = http://go.microsoft.com/fwlink/?LinkId=69157
R1 - HKLM\Software\Microsoft\Internet Explorer\Main,Default_Search_URL = http://go.microsoft.com/fwlink/?LinkId=54896
R1 - HKLM\Software\Microsoft\Internet Explorer\Main,Search Page = http://go.microsoft.com/fwlink/?LinkId=54896
R0 - HKLM\Software\Microsoft\Internet Explorer\Main,Start Page = http://go.microsoft.com/fwlink/?LinkId=69157
R1 - HKCU\Software\Microsoft\Internet Connection Wizard,ShellNext = http://www.dell.com/
R3 - URLSearchHook: (no name) - {00A6FAF6-072E-44cf-8957-5838F569A31D} - (no file)
O2 - BHO: MyWebSearch Search Assistant BHO - {00A6FAF1-072E-44cf-8957-5838F569A31D} - (no file)
O2 - BHO: AcroIEHlprObj Class - {06849E9F-C8D7-4D59-B87D-784B7D6BE0B3} - C:\Program Files\Adobe\Acrobat 6.0\Reader\ActiveX\AcroIEHelper.dll
O2 - BHO: Skype add-on (mastermind) - {22BF413B-C6D2-4d91-82A9-A0F997BA588C} - C:\Program Files\Skype\Toolbars\Internet Explorer\SkypeIEPlugin.dll
O2 - BHO: DriveLetterAccess - {5CA3D70E-1895-11CF-8E15-001234567890} - C:\WINDOWS\system32\dla\tfswshx.dll
O2 - BHO: Java(tm) Plug-In SSV Helper - {761497BB-D6F0-462C-B6EB-D4DAF1D92D43} - C:\Program Files\Java\jre6\bin\ssv.dll
O2 - BHO: (no name) - {7E853D72-626A-48EC-A868-BA8D5E23E045} - (no file)
O2 - BHO: Java(tm) Plug-In 2 SSV Helper - {DBC80044-A445-435b-BC74-9C25C1C588A9} - C:\Program Files\Java\jre6\bin\jp2ssv.dll
O2 - BHO: JQSIEStartDetectorImpl - {E7E6F031-17CE-4C07-BC86-EABFE594F69C} - C:\Program Files\Java\jre6\lib\deploy\jqs\ie\jqs_plugin.dll
O4 - HKLM\..\Run: [IAAnotif] C:\Program Files\Intel\Intel Application Accelerator\iaanotif.exe
O4 - HKLM\..\Run: [IntelMeM] C:\Program Files\Intel\Modem Event Monitor\IntelMEM.exe
O4 - HKLM\..\Run: [CTSysVol] C:\Program Files\Creative\Sound Blaster Live! 24-bit\Surround Mixer\CTSysVol.exe /r
O4 - HKLM\..\Run: [P17Helper] Rundll32 P17.dll,P17Helper
O4 - HKLM\..\Run: [UpdReg] C:\WINDOWS\UpdReg.EXE
O4 - HKLM\..\Run: [dla] C:\WINDOWS\system32\dla\tfswctrl.exe
O4 - HKLM\..\Run: [PinnacleDriverCheck] C:\WINDOWS\system32\PSDrvCheck.exe -CheckReg
O4 - HKLM\..\Run: [LifeCam] "C:\Program Files\Microsoft LifeCam\LifeExp.exe"
O4 - HKLM\..\Run: [VX1000] C:\WINDOWS\vVX1000.exe
O4 - HKLM\..\Run: [UfSeAgnt.exe] "C:\Program Files\Trend Micro\Internet Security\UfSeAgnt.exe"
O4 - HKLM\..\Run: [SunJavaUpdateSched] "C:\Program Files\Java\jre6\bin\jusched.exe"
O4 - HKCU\..\Run: [ctfmon.exe] C:\WINDOWS\system32\ctfmon.exe
O8 - Extra context menu item: &Search - http://edits.mywebsearch.com/toolbaredits/menusearch.jhtml?p=ZJxdm172YYAU
O8 - Extra context menu item: E&xport to Microsoft Excel - res://C:\PROGRA~1\MICROS~2\OFFICE11\EXCEL.EXE/3000
O9 - Extra button: Skype - {77BF5300-1474-4EC7-9980-D32B190E9B07} - C:\Program Files\Skype\Toolbars\Internet Explorer\SkypeIEPlugin.dll
O9 - Extra button: Research - {92780B25-18CC-41C8-B9BE-3C9C571A8263} - C:\PROGRA~1\MICROS~2\OFFICE11\REFIEBAR.DLL
O9 - Extra button: Real.com - {CD67F990-D8E9-11d2-98FE-00C0F0318AFE} - C:\WINDOWS\system32\Shdocvw.dll
O9 - Extra button: (no name) - {e2e2dd38-d088-4134-82b7-f2ba38496583} - C:\WINDOWS\Network Diagnostic\xpnetdiag.exe
O9 - Extra 'Tools' menuitem: @xpsp3res.dll,-20001 - {e2e2dd38-d088-4134-82b7-f2ba38496583} - C:\WINDOWS\Network Diagnostic\xpnetdiag.exe
O9 - Extra button: Messenger - {FB5F1910-F110-11d2-BB9E-00C04F795683} - C:\Program Files\Messenger\msmsgs.exe
O9 - Extra 'Tools' menuitem: Windows Messenger - {FB5F1910-F110-11d2-BB9E-00C04F795683} - C:\Program Files\Messenger\msmsgs.exe
O16 - DPF: {1D4DB7D2-6EC9-47A3-BD87-1E41684E07BB} - http://ak.exe.imgfarm.com/images/nocache/funwebproducts/ei-3/ZwinkyInitialSetup1.0.1.0.cab
O16 - DPF: {6E32070A-766D-4EE6-879C-DC1FA91D2FC3} (MUWebControl Class) - http://www.update.microsoft.com/microsoftupdate/v6/V5Controls/en/x86/client/muweb_site.cab?1191407246562
O18 - Protocol: skype4com - {FFC8B962-9B40-4DFF-9458-1830C7DD7F5D} - C:\PROGRA~1\COMMON~1\Skype\SKYPE4~1.DLL
O20 - Winlogon Notify: 84cb4975511 - C:\WINDOWS\
O23 - Service: Ati HotKey Poller - Unknown owner - C:\WINDOWS\system32\Ati2evxx.exe
O23 - Service: Canon Camera Access Library 8 (CCALib8) - Canon Inc. - C:\Program Files\Canon\CAL\CALMAIN.exe
O23 - Service: Creative Service for CDROM Access - Creative Technology Ltd - C:\WINDOWS\system32\CTsvcCDA.EXE
O23 - Service: IAA Event Monitor (IAANTMon) - Intel Corporation - C:\Program Files\Intel\Intel Application Accelerator\iaantmon.exe
O23 - Service: Java Quick Starter (JavaQuickStarterService) - Sun Microsystems, Inc. - C:\Program Files\Java\jre6\bin\jqs.exe
O23 - Service: My Web Search Service (MyWebSearchService) - Unknown owner - C:\PROGRA~1\MYWEBS~1\bar\1.bin\mwssvc.exe (file missing)
O23 - Service: Trend Micro Central Control Component (SfCtlCom) - Trend Micro Inc. - C:\Program Files\Trend Micro\Internet Security\SfCtlCom.exe
O23 - Service: SymWMI Service (SymWSC) - Symantec Corporation - C:\Program Files\Common Files\Symantec Shared\Security Center\SymWSC.exe
O23 - Service: Trend Micro Unauthorized Change Prevention Service (TMBMServer) - Trend Micro Inc. - C:\Program Files\Trend Micro\BM\TMBMSRV.exe
O23 - Service: Trend Micro Personal Firewall (TmPfw) - Trend Micro Inc. - C:\Program Files\Trend Micro\Internet Security\TmPfw.exe
O23 - Service: Trend Micro Proxy Service (TmProxy) - Trend Micro Inc. - C:\Program Files\Trend Micro\Internet Security\TmProxy.exe
--
End of file - 7527 bytes
-
These lines ring alarm bells to me:
R3 - URLSearchHook: (no name) - {00A6FAF6-072E-44cf-8957-5838F569A31D} - (no file)
O2 - BHO: MyWebSearch Search Assistant BHO - {00A6FAF1-072E-44cf-8957-5838F569A31D} - (no file)
O2 - BHO: (no name) - {7E853D72-626A-48EC-A868-BA8D5E23E045} - (no file)
O8 - Extra context menu item: &Search - http://edits.mywebsearch.com/toolbaredits/menusearch.jhtml?p=ZJxdm172YYAU
O16 - DPF: {1D4DB7D2-6EC9-47A3-BD87-1E41684E07BB} - http://ak.exe.imgfarm.com/images/nocache/funwebproducts/ei-3/ZwinkyInitialSetup1.0.1.0.cab
O23 - Service: My Web Search Service (MyWebSearchService) - Unknown owner - C:\PROGRA~1\MYWEBS~1\bar\1.bin\mwssvc.exe (file missing)
Anything to do with MyWebSearch (Zwinky) is BAD (I would make it flashing red and yellow in 72 point, but I think you get the idea) so you'll need to get rid of it. Next suggestion is Unlocker (http://ccollomb.free.fr/unlocker/) which will let you delete "locked" files (it'll also tell you what's using them if you try and delete them while they're in use).
I had to get rid of Vundo from a laptop at work here, managed to get rid of it, but the machine was still left in a state that wasn't entirely stable. In the end, it came down to splatting an image back onto it and starting with a virgin machine. It's not even like the person has gone anywhere iffy, as it's happening in infected advertising (I've seen it happen).
Hope this can help.
-
Finnally got malewarebytes to work, cleared up mywebsearch and a few others in safe mode.
Thanks for the others, I deleted some through hyjackthis, and hopefully I am finnally clean. Google/IE7 at least works correctly now.
Thankyou very much, I can now get back to the important stuff of programming.
:D
-
IE with all bells and whistles on is asking for trouble.
-
I just found a new and even weirder bug in my game. The game goes into an infinite loop, but only when g++'s -Os (optimize) flag is enabled and -g (debug) flag is disabled. So I can't debug the **** thing. Fortunately gdb still shows me what functions are executed, and I narrowed it down to about 40 LOC, but I still can't find what's wrong. I guess I'll have to disable some of the code, a little at a time.
-
Theres nothing worse than a bug that does not show up in debug. A lot of the time it is stack overflows, memory errors, etc, but usually they result in a crash (but not always). However I doubt the optimise flag would have much effect on game speed anyway, so you could always disable it (after you try at least to track down the bug).
-
but I still can't find what's wrong.
The bug is probably elsewhere and corrupting the program's code which then crashes when memory layout changes with optimization. I had those when I was still programming plain C. Now with well structured OOP programming and using STL I have got rid of memory bugs.
-
Funny bug: I added water, and discovered that monsters who take drowning damage turn hostile against the water, trying to attack it, thus repeatedly splashing back in, eventually drowning themselves.
Another kludge added, another problem solved.
Minotaur
-
Hahahah, that's pretty funny :D
Water's attacking me! Take that *gurgle* Oh yeah?!? *gurgle* And that! *gurgle*
-
Sounds like something you can add to the game, i.e you cast confustion on a mob in the water...