dewo1@ihuxn.UUCP (dew) (01/16/84)
Question 1: Is there any way to analyze a program that uses a shared memory segment? Question 2: Suppose you catch a signal, using signal(). Is there anyway to tell where you were when the signal came in? I have a program that makes both of these questions relevant: 1. The program uses shared memory for many of its data structures. When the program core dumps, and I examine it under sdb, the shared memory segment is not present OR not addressible. I do not know which (ie., does the core dump contain the shared memory and sdb can not get at it; or was the shared memory simply not dumped in the first place). 2. I catch all catchable signals. For most of them, I simply print out an informative message and force a core dump by doing a floating point division by zero. Looking at the resulting core dump via sdb yields a function trace that looks like the following: my_catcher(10) signal(1 to 3 arguments here) my-routine1() . . my-routinej() Of interest is the function "signal()". It is NOT one of mine. I do not know what the arguments are. I have seen one argument, and I have seen three arguments. I assume that I was executing in my-routine1() when the signal 10 came in. How can I find out were? Even when everything is compiled with "-g", no indication as to line number or machine instruction is given. Any suggestions? Doug Whitten ihuxn!dewo1 iwsl7!dewo1 Question 1: Is there any way to analyze a program that uses a shared memory segment? Question 2: Suppose you catch a signal, using signal(). Is there anyway to tell where you were when the signal came in? I have a program that makes both of these questions relevant: 1. The program uses shared memory for many of its data structures. When the program core dumps, and I examine it under sdb, the shared memory segment is not present OR not addressible. I do not know which (ie., does the core dump contain the shared memory and sdb can not get at it, or was the shared memory simply not dumped in the first place). 2. I catch all catchable signals. For most of them, I simply print out an informative message and force a core dump by doing a floating point division by zero. Looking at the resulting core dump via sdb yields a function trace that looks like the following: my_catcher(10) signal(1 to 3 arguments here) my-routine1() . . my-routinej() Of interest is the function "signal()". It is NOT one of mine. I do not know what the arguments are. I have seen one argument, and I have seen three arguments. I assume that I was executing in my-routine1() when the signal 10 came in. How can I find out were? Even when everything is compiled with "-g", no indication as to line number or machine instruction is given. Any suggestions? Doug Whitten ihuxn!dewo1 iwsl7!dewo1