Class: Babeltrace2::BTError
- Inherits:
-
BTObject
show all
- Defined in:
- lib/babeltrace2/error-reporting.rb,
lib/babeltrace2/error-reporting.rb,
lib/babeltrace2/error-reporting.rb
Defined Under Namespace
Classes: Cause
Instance Attribute Summary
Attributes inherited from BTObject
#handle
Instance Method Summary
collapse
Methods inherited from BTObject
#==, #initialize, #to_ptr
Instance Method Details
#causes ⇒ Object
316
317
318
319
320
321
|
# File 'lib/babeltrace2/error-reporting.rb', line 316
def causes
get_cause_count.times.collect { |i|
ref = Babeltrace2.bt_error_borrow_cause_by_index(@handle, i)
Cause.new(ref)
}
end
|
#exception_params ⇒ Object
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
|
# File 'lib/babeltrace2/error-reporting.rb', line 343
def exception_params()
klass = nil
message = nil
backtrace = []
cs = causes
return [klass, message, backtrace] if cs.empty?
c = cs.first
mess = c.message
m = mess.match(/ ::(.*?): (.*)/m)
if m
klass = m[1]
message = m[2]
mess.sub!( m[0], "" )
end
item = ""
item << c.file_name << ":"
item << c.line_number.to_s
item << (mess.match(/:in /) ? mess : Babeltrace2.verbose? ? " :: " << mess : ".")
backtrace.push(item)
cs[1..-1].each { |c|
item = ""
item << c.file_name << ":"
item << c.line_number.to_s
mess = c.message
item << (mess.match(/:in /) ? mess : Babeltrace2.verbose? ? " :: " << mess : ".")
backtrace.push(item)
}
[klass, message, backtrace]
end
|
#get_cause_by_index(indx) ⇒ Object
310
311
312
313
314
|
# File 'lib/babeltrace2/error-reporting.rb', line 310
def get_cause_by_index(indx)
return nil unless indx < get_cause_count
ref = Babeltrace2.bt_error_borrow_cause_by_index(@handle, indx)
Cause.new(ref)
end
|
#get_cause_count ⇒ Object
Also known as:
cause_count
304
305
306
307
|
# File 'lib/babeltrace2/error-reporting.rb', line 304
def get_cause_count
raise Error.new("Error already released") unless @handle
Babeltrace2.bt_error_get_cause_count(@handle)
end
|
#release ⇒ Object
323
324
325
326
327
|
# File 'lib/babeltrace2/error-reporting.rb', line 323
def release
raise Error.new("Error already released") unless @handle
Babeltrace2.bt_error_release(@handle)
@handle = nil
end
|
#to_s ⇒ Object
329
330
331
332
333
334
335
336
337
338
339
340
341
|
# File 'lib/babeltrace2/error-reporting.rb', line 329
def to_s
str = ""
causes.each { |c|
file_name = c.file_name
line_number = c.line_number
str << file_name << ":" if file_name
str << line_number.to_s << ":" if line_number
str << " "
str << c.message
str << "\n"
}
str
end
|