Reading crash dumps
Posted: Tue Jan 10, 2017 6:55 am
Is there any magic to reading a BT report? I am getting a random crash, only happens when no one is playing.
I have the line of the dump, it is definitely code I have written but I am quickly running out of ideas. I have a mutex on the new vector, and a readlock on it.
Also, while I have C++ coders attention. If I am already iterating a collection, and want to iterate it again, do I need two readlocks? I am thinking that I already have a lock on it, why lock twice? Such as if I was iterating the spawn_list and want to iterate it again, comparing spawn against spawn. Something like that anyway. Of course that is very intensive so I am already only getting the spawns in the immediate area, otherwise you can really compound the number of loops.
And one more. I have always been unclear on this one. Take a line like this one, where you check against the existence of an object.
Is the entire line read in and checked? I am just curious if that could cause a null to crash the line? Does that need to be embedded like this?
Reading this, I guess I am correct, the entire line would not be evaluated?
Code: Select all
#0 0x00007fff81b3a968 in ?? ()
Also, while I have C++ coders attention. If I am already iterating a collection, and want to iterate it again, do I need two readlocks? I am thinking that I already have a lock on it, why lock twice? Such as if I was iterating the spawn_list and want to iterate it again, comparing spawn against spawn. Something like that anyway. Of course that is very intensive so I am already only getting the spawns in the immediate area, otherwise you can really compound the number of loops.
And one more. I have always been unclear on this one. Take a line like this one, where you check against the existence of an object.
Code: Select all
if (assist && assist->IsNPC() && assist->EngagedInCombat() == false){Code: Select all
if (assist)
if (assist->IsNPC() && assist->EngagedInCombat() == false){