Date: Thu, 1 Mar 2001 18:41:25 +0000 (GMT) From: "E.B. Dreger" <eddy+public+spam@noc.everquick.net> To: Peter Dufault <dufault@hda.hda.com> Cc: hackers@FreeBSD.ORG Subject: Re: Stupid debugging pthread question Message-ID: <Pine.LNX.4.20.0103011835040.29685-100000@www.everquick.net> In-Reply-To: <200103011745.f21Hjts33386@hda.hda.com>
next in thread | previous in thread | raw e-mail | index | archive | help
> Date: Thu, 1 Mar 2001 12:44:39 -0500 (EST) > From: Peter Dufault <dufault@hda.hda.com> > > This is a stupid question, basically it's how to debug something. > > I have four cooperating p-threaded processes. One of them keeps getting > a SIGSEGV with the address 0x752f422f. I'm not sure if that address is > always the same, but with a given compile it is. The thing that's a pain > is it is random. The four processes can run for a long time, or through > several tests to completion, and then the > nasty process gets that SIGSEGV. The thread that receives the SIGSEGV > is random, the stack of the SEGV'd thread is trash, the rest of the > threads in the offending process still have intact stacks. Arg! Sounds like maybe a buffer overrun or something might be trashing a return pointer. Not sure what the exact cause is, but if that address is not an actual address, I'd suspect that a return pointer is getting trashed. Any strings "/B/u" in your program? That would be stored as 0x752f422f. If you're using assembly with using %ebp for stack frame (yay!), then make certain %esp isn't getting corrupted. Eddy --------------------------------------------------------------------------- Brotsman & Dreger, Inc. EverQuick Internet / EternalCommerce Division E-Mail: eddy@everquick.net Phone: (316) 794-8922 --------------------------------------------------------------------------- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.LNX.4.20.0103011835040.29685-100000>