9
9
// except according to those terms.
10
10
11
11
use libc;
12
+ use backtrace_sys:: { self , backtrace_state} ;
12
13
13
14
use ffi:: CStr ;
14
15
use io;
@@ -39,11 +40,13 @@ where F: FnMut(&[u8], u32) -> io::Result<()>
39
40
let mut fileline_win: & mut [ FileLine ] = & mut fileline_buf;
40
41
let fileline_addr = & mut fileline_win as * mut & mut [ FileLine ] ;
41
42
ret = unsafe {
42
- backtrace_pcinfo ( state,
43
- frame. exact_position as libc:: uintptr_t ,
44
- pcinfo_cb,
45
- error_cb,
46
- fileline_addr as * mut libc:: c_void )
43
+ backtrace_sys:: backtrace_pcinfo (
44
+ state,
45
+ frame. exact_position as libc:: uintptr_t ,
46
+ pcinfo_cb,
47
+ error_cb,
48
+ fileline_addr as * mut libc:: c_void ,
49
+ )
47
50
} ;
48
51
FILELINE_SIZE - fileline_win. len ( )
49
52
} ;
@@ -76,11 +79,13 @@ pub fn resolve_symname<F>(frame: Frame,
76
79
let mut data: * const libc:: c_char = ptr:: null ( ) ;
77
80
let data_addr = & mut data as * mut * const libc:: c_char ;
78
81
let ret = unsafe {
79
- backtrace_syminfo ( state,
80
- frame. symbol_addr as libc:: uintptr_t ,
81
- syminfo_cb,
82
- error_cb,
83
- data_addr as * mut libc:: c_void )
82
+ backtrace_sys:: backtrace_syminfo (
83
+ state,
84
+ frame. symbol_addr as libc:: uintptr_t ,
85
+ syminfo_cb,
86
+ error_cb,
87
+ data_addr as * mut libc:: c_void ,
88
+ )
84
89
} ;
85
90
if ret == 0 || data. is_null ( ) {
86
91
None
@@ -93,45 +98,6 @@ pub fn resolve_symname<F>(frame: Frame,
93
98
callback ( symname)
94
99
}
95
100
96
- ////////////////////////////////////////////////////////////////////////
97
- // libbacktrace.h API
98
- ////////////////////////////////////////////////////////////////////////
99
- type backtrace_syminfo_callback =
100
- extern "C" fn ( data : * mut libc:: c_void ,
101
- pc : libc:: uintptr_t ,
102
- symname : * const libc:: c_char ,
103
- symval : libc:: uintptr_t ,
104
- symsize : libc:: uintptr_t ) ;
105
- type backtrace_full_callback =
106
- extern "C" fn ( data : * mut libc:: c_void ,
107
- pc : libc:: uintptr_t ,
108
- filename : * const libc:: c_char ,
109
- lineno : libc:: c_int ,
110
- function : * const libc:: c_char ) -> libc:: c_int ;
111
- type backtrace_error_callback =
112
- extern "C" fn ( data : * mut libc:: c_void ,
113
- msg : * const libc:: c_char ,
114
- errnum : libc:: c_int ) ;
115
- enum backtrace_state { }
116
-
117
- extern {
118
- fn backtrace_create_state ( filename : * const libc:: c_char ,
119
- threaded : libc:: c_int ,
120
- error : backtrace_error_callback ,
121
- data : * mut libc:: c_void )
122
- -> * mut backtrace_state ;
123
- fn backtrace_syminfo ( state : * mut backtrace_state ,
124
- addr : libc:: uintptr_t ,
125
- cb : backtrace_syminfo_callback ,
126
- error : backtrace_error_callback ,
127
- data : * mut libc:: c_void ) -> libc:: c_int ;
128
- fn backtrace_pcinfo ( state : * mut backtrace_state ,
129
- addr : libc:: uintptr_t ,
130
- cb : backtrace_full_callback ,
131
- error : backtrace_error_callback ,
132
- data : * mut libc:: c_void ) -> libc:: c_int ;
133
- }
134
-
135
101
////////////////////////////////////////////////////////////////////////
136
102
// helper callbacks
137
103
////////////////////////////////////////////////////////////////////////
@@ -210,7 +176,11 @@ unsafe fn init_state() -> *mut backtrace_state {
210
176
Err ( _) => ptr:: null ( ) ,
211
177
} ;
212
178
213
- STATE = backtrace_create_state ( filename, 0 , error_cb,
214
- ptr:: null_mut ( ) ) ;
179
+ STATE = backtrace_sys:: backtrace_create_state (
180
+ filename,
181
+ 0 ,
182
+ error_cb,
183
+ ptr:: null_mut ( ) ,
184
+ ) ;
215
185
STATE
216
186
}
0 commit comments