Extend debug_create_symbol_lookup_context().

- debug_create_symbol_lookup_context() now takes an image ID
  parameter that can optionally be used to restrict the symbols
  it gathers to only those of the targeted image rather than the
  entire team, allowing for significantly more lightweight usage
  when the desired image is known. The previous behavior can still
  be obtained if desired by passing -1 as said ID.

- Adjust callers.
This commit is contained in:
Rene Gollent
2013-04-30 21:34:45 -04:00
parent f3decd2060
commit 196ab88d06
7 changed files with 90 additions and 59 deletions
+6 -2
View File
@@ -1,5 +1,6 @@
/*
* Copyright 2005-2009, Ingo Weinhold, [email protected].
* Copyright 2005-2009, Ingo Weinhold, [email protected].
* Copyright 2013, Rene Gollent, [email protected]
* Distributed under the terms of the MIT License.
*/
#ifndef _DEBUG_SUPPORT_H
@@ -61,7 +62,7 @@ status_t debug_get_stack_frame(debug_context *context,
typedef struct debug_symbol_lookup_context debug_symbol_lookup_context;
typedef struct debug_symbol_iterator debug_symbol_iterator;
status_t debug_create_symbol_lookup_context(team_id team,
status_t debug_create_symbol_lookup_context(team_id team, image_id image,
debug_symbol_lookup_context **lookupContext);
void debug_delete_symbol_lookup_context(
debug_symbol_lookup_context *lookupContext);
@@ -77,6 +78,9 @@ status_t debug_lookup_symbol_address(debug_symbol_lookup_context *lookupContext,
status_t debug_create_image_symbol_iterator(
debug_symbol_lookup_context* lookupContext, image_id imageID,
debug_symbol_iterator** _iterator);
// imageID can be -1 if all images in the target team are
// desired, otherwise a valid image id is expected.
status_t debug_create_file_symbol_iterator(const char* path,
debug_symbol_iterator** _iterator);
void debug_delete_symbol_iterator(debug_symbol_iterator* iterator);