230
231 return (0);
232 }
233
234 int
235 dt_handle_liberr(dtrace_hdl_t *dtp, const dtrace_probedata_t *data,
236 const char *faultstr)
237 {
238 dtrace_probedesc_t *errpd = data->dtpda_pdesc;
239 dtrace_errdata_t err;
240 const int slop = 80;
241 char *str;
242 int len;
243
244 err.dteda_edesc = data->dtpda_edesc;
245 err.dteda_pdesc = errpd;
246 err.dteda_cpu = data->dtpda_cpu;
247 err.dteda_action = -1;
248 err.dteda_offset = -1;
249 err.dteda_fault = DTRACEFLT_LIBRARY;
250 err.dteda_addr = NULL;
251
252 len = strlen(faultstr) +
253 strlen(errpd->dtpd_provider) + strlen(errpd->dtpd_mod) +
254 strlen(errpd->dtpd_name) + strlen(errpd->dtpd_func) +
255 slop;
256
257 str = alloca(len);
258
259 (void) snprintf(str, len, "error on enabled probe ID %u "
260 "(ID %u: %s:%s:%s:%s): %s\n",
261 data->dtpda_edesc->dtepd_epid,
262 errpd->dtpd_id, errpd->dtpd_provider,
263 errpd->dtpd_mod, errpd->dtpd_func,
264 errpd->dtpd_name, faultstr);
265
266 err.dteda_msg = str;
267
268 if (dtp->dt_errhdlr == NULL)
269 return (dt_set_errno(dtp, EDT_ERRABORT));
270
|
230
231 return (0);
232 }
233
234 int
235 dt_handle_liberr(dtrace_hdl_t *dtp, const dtrace_probedata_t *data,
236 const char *faultstr)
237 {
238 dtrace_probedesc_t *errpd = data->dtpda_pdesc;
239 dtrace_errdata_t err;
240 const int slop = 80;
241 char *str;
242 int len;
243
244 err.dteda_edesc = data->dtpda_edesc;
245 err.dteda_pdesc = errpd;
246 err.dteda_cpu = data->dtpda_cpu;
247 err.dteda_action = -1;
248 err.dteda_offset = -1;
249 err.dteda_fault = DTRACEFLT_LIBRARY;
250 err.dteda_addr = 0L;
251
252 len = strlen(faultstr) +
253 strlen(errpd->dtpd_provider) + strlen(errpd->dtpd_mod) +
254 strlen(errpd->dtpd_name) + strlen(errpd->dtpd_func) +
255 slop;
256
257 str = alloca(len);
258
259 (void) snprintf(str, len, "error on enabled probe ID %u "
260 "(ID %u: %s:%s:%s:%s): %s\n",
261 data->dtpda_edesc->dtepd_epid,
262 errpd->dtpd_id, errpd->dtpd_provider,
263 errpd->dtpd_mod, errpd->dtpd_func,
264 errpd->dtpd_name, faultstr);
265
266 err.dteda_msg = str;
267
268 if (dtp->dt_errhdlr == NULL)
269 return (dt_set_errno(dtp, EDT_ERRABORT));
270
|