Brian Utterback
2007-Sep-17 19:08 UTC
[dtrace-discuss] Trying to figure out what is happening to ** variables.
I am working on a problem involving the SSLeay call to PEM_read. Unfortunately, the problem is in an inlined function and I find that most of my tools get a little twitchy working on inline functions. However, when the function is not inlined, the problem goes away. Near the end of the function, it calls another function and with dtrace I find that one of the input parameters is garbage. However the only place in the source that this variable is touched is earlier when it is passed to the PEM_read function which should be setting it. So, my goal is to either verify that PEM_read is setting this variable or prove that it is not. Here is the prototype of PEM_read: int PEM_read(fp, name, header, data, len) FILE *fp; char **name, **header; unsigned char **data; long *len; The variable I am concerned about is data. I want to capture the address of data on the entry to PEM_read and display the address it contains on exit and at least the beginning of the data that points to as well. I can then double check of it is the same as the data that is going into the other function later. My problem is that the double redirection and need for copyin is throwing me. I can''t seem to get it right. Can sombody give me a hand? Thanks. -- blu Screening ideas are indeed thought up by the Office for Annoying Air Travelers and vetted through the Directorate for Confusion and Complexity - Kip Hawley, Head of the TSA ---------------------------------------------------------------------- Brian Utterback - Solaris RPE, Sun Microsystems, Inc. Ph:877-259-7345, Em:brian.utterback-at-ess-you-enn-dot-kom