14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
20 * CA 95054 USA or visit www.sun.com if you need additional information or
21 * have any questions.
22 *
23 */
24
25 class decode_env;
26
27 // The disassembler prints out assembly code annotated
28 // with Java specific information.
29
30 class Disassembler {
31 friend class decode_env;
32 private:
33 // this is the type of the dll entry point:
34 typedef void* (*decode_func)(void* start, void* end,
35 void* (*event_callback)(void*, const char*, void*),
36 void* event_stream,
37 int (*printf_callback)(void*, const char*, ...),
38 void* printf_stream,
39 const char* options);
40 // points to the library.
41 static void* _library;
42 // bailout
43 static bool _tried_to_load_library;
44 // points to the decode function.
45 static decode_func _decode_instructions;
46 // tries to load library and return whether it succedded.
47 static bool load_library();
48
49 // Machine dependent stuff
50 #include "incls/_disassembler_pd.hpp.incl"
51
52 public:
53 static bool can_decode() {
54 return (_decode_instructions != NULL) || load_library();
|
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
20 * CA 95054 USA or visit www.sun.com if you need additional information or
21 * have any questions.
22 *
23 */
24
25 class decode_env;
26
27 // The disassembler prints out assembly code annotated
28 // with Java specific information.
29
30 class Disassembler {
31 friend class decode_env;
32 private:
33 // this is the type of the dll entry point:
34 typedef void* (*decode_func)(uintptr_t start_va, uintptr_t end_va,
35 unsigned char* buffer, uintptr_t length,
36 void* (*event_callback)(void*, const char*, void*),
37 void* event_stream,
38 int (*printf_callback)(void*, const char*, ...),
39 void* printf_stream,
40 const char* options);
41 // points to the library.
42 static void* _library;
43 // bailout
44 static bool _tried_to_load_library;
45 // points to the decode function.
46 static decode_func _decode_instructions;
47 // tries to load library and return whether it succedded.
48 static bool load_library();
49
50 // Machine dependent stuff
51 #include "incls/_disassembler_pd.hpp.incl"
52
53 public:
54 static bool can_decode() {
55 return (_decode_instructions != NULL) || load_library();
|