diff options
| author | KyleMiles <krm504@nyu.edu> | 2023-04-22 12:00:38 -0400 |
|---|---|---|
| committer | KyleMiles <krm504@nyu.edu> | 2023-05-08 15:27:58 -0400 |
| commit | 99c7a280ae771073b6a36e958426d6f2c7d29462 (patch) | |
| tree | 02c2f8164c657f5bc24a88a99acdc7fac29e5d93 /rust/src/debuginfo.rs | |
| parent | 2693da23c708d454d3fbed93326ed319dc2d082a (diff) | |
Pass debug file along with original file to debug info parsers
Diffstat (limited to 'rust/src/debuginfo.rs')
| -rw-r--r-- | rust/src/debuginfo.rs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/rust/src/debuginfo.rs b/rust/src/debuginfo.rs index 0fd1930e..40c1fd39 100644 --- a/rust/src/debuginfo.rs +++ b/rust/src/debuginfo.rs @@ -40,7 +40,7 @@ //! true //! } //! -//! fn parse_info(&self, _debug_info: &mut DebugInfo, _view: &BinaryView, _progress: Box<dyn Fn(usize, usize) -> bool>) { +//! fn parse_info(&self, _debug_info: &mut DebugInfo, _view: &BinaryView, _debug_file: &BinaryView, _progress: Box<dyn Fn(usize, usize) -> bool>) { //! println!("Parsing info"); //! } //! } @@ -145,6 +145,7 @@ impl DebugInfoParser { pub fn parse_debug_info( &self, view: &BinaryView, + debug_file: &BinaryView, existing_debug_info: Option<&DebugInfo>, progress: Option<Box<dyn Fn(usize, usize) -> Result<(), ()>>>, ) -> Option<Ref<DebugInfo>> { @@ -154,6 +155,7 @@ impl DebugInfoParser { BNParseDebugInfo( self.handle, view.handle, + debug_file.handle, debug_info.handle, Some(Self::cb_progress), &mut progress_raw as *mut _ as *mut c_void, @@ -163,6 +165,7 @@ impl DebugInfoParser { BNParseDebugInfo( self.handle, view.handle, + debug_file.handle, ptr::null_mut(), Some(Self::cb_progress), &mut progress_raw as *mut _ as *mut c_void, @@ -197,6 +200,7 @@ impl DebugInfoParser { ctxt: *mut c_void, debug_info: *mut BNDebugInfo, view: *mut BNBinaryView, + debug_file: *mut BNBinaryView, progress: Option<unsafe extern "C" fn(*mut c_void, usize, usize) -> bool>, progress_ctxt: *mut c_void, ) -> bool @@ -206,11 +210,13 @@ impl DebugInfoParser { ffi_wrap!("CustomDebugInfoParser::parse_info", unsafe { let cmd = &*(ctxt as *const C); let view = BinaryView::from_raw(view); + let debug_file = BinaryView::from_raw(debug_file); let mut debug_info = DebugInfo::from_raw(debug_info); cmd.parse_info( &mut debug_info, &view, + &debug_file, Box::new(move |cur: usize, max: usize| match progress { Some(func) => { if func(progress_ctxt, cur, max) { @@ -839,6 +845,7 @@ pub trait CustomDebugInfoParser: 'static + Sync { &self, debug_info: &mut DebugInfo, view: &BinaryView, + debug_file: &BinaryView, progress: Box<dyn Fn(usize, usize) -> Result<(), ()>>, ) -> bool; } |
