This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [Bug runtime/2497] STP_STRING_SIZE set by stap is too small


On Mon, 2006-04-03 at 03:43 +0000, guanglei at cn dot ibm dot com wrote:
> I can call print_backtrace() to print the backtrace, but in fact I
> want to
> combine the string of backtrace with other information to generate the
> output of
> a specific event, like the following:
> 
> String str = _stp_string_init (0);
> _stp_stack_sprint (str, CONTEXT->regs, 0);
> _lket_trace(THIS->var_id, "%1b%4b%1b%ld%4b%4b%s",
> cmd->device->sdev_state,
> scsi_info,
>                 cmd->sc_data_direction, cmd->request_buffer,
> cmd->request_bufflen,
>                 cmd->device->host->cmd_pid, _stp_string_ptr(str));
> 
> So what I want is a larger String obtained by _stp_string_init, while
> keep all other strings used by stap the same as before. 

But aren't there just two possibilities?
1. You print the backtrace.
2. You get the backtrace in a string and save it in an array.

For #1, you use print_backtrace. For #2, you need to have all strings be
larger, as it is done now.

In your example above, you would just write something like this in
script:

bin_write("%1b%4b%1b%ld%4b%4b", cmd->device->sdev_state, [...])
print_backtrace()

Martin


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]