⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 poltrace.c

📁 一个开源的JAVA虚拟机
💻 C
字号:
#include <jpr/log.h>#include <jpr/assert.h>#include <aegisvm/pol.h>inttrace_pol_init(void) {  j_log("trace: initializing POLs");  return 0;}inttrace_pol_finish(void) {  j_log("trace: finishing POLs");  return 0;}booltrace_pol_class(POLEnv env,		ju2 nargs,		const void *args[const]) {  POLClass class;  j_assert(nargs == 1);  class = args[0];  j_log("trace: discharging class obligations: %U", pol_class_name(class));  return true;}booltrace_pol_class_constant(POLEnv env,			 ju2 nargs,			 const void *args[const]) {  POLClass class;  j_assert(nargs == 1);  class = args[0];  j_log("trace: discharging class constant obligation: %U",	pol_class_name(class));  return true;}booltrace_pol_fieldref_constant(POLEnv env,			    ju2 nargs,			    const void *args[const]) {  POLField field;  j_assert(nargs == 1);  field = args[0];  j_log("trace: discharging fieldref constant obligation: %U.%U:%U",	pol_class_name(pol_field_class(field)),	pol_field_name(field),	pol_field_descriptor(field));  return true;}booltrace_pol_methodref_constant(POLEnv env,			     ju2 nargs,			     const void *args[const]) {  POLMethod method;  j_assert(nargs == 1);  method = args[0];  j_log("trace: discharging methodref constant obligation: %U.%U%U",	pol_class_name(pol_method_class(method)),	pol_method_name(method),	pol_method_descriptor(method));  return true;}booltrace_pol_interface_methodref_constant(POLEnv env,				       ju2 nargs,				       const void *args[const]) {  POLMethod method;  j_assert(nargs == 1);  method = args[0];  j_log("trace: interface methodref constant obligation: %U.%U%U",	pol_class_name(pol_method_class(method)),	pol_method_name(method),	pol_method_descriptor(method));  return true;}booltrace_pol_field(POLEnv env,		ju2 nargs,		const void *args[const]) {  POLField field;  j_assert(nargs == 1);  field = args[0];  j_log("trace: discharging field obligation %U.%U:%U",	pol_class_name(pol_field_class(field)),	pol_field_name(field),	pol_field_descriptor(field));  return true;}booltrace_pol_method(POLEnv env,		ju2 nargs,		const void *args[const]) {  POLMethod method;  j_assert(nargs == 1);  method = args[0];  j_log("trace: discharging method obligation %U.%U%U",	pol_class_name(pol_method_class(method)),	pol_method_name(method),	pol_method_descriptor(method));  return true;}pol_predicate_t pol_predicates[] = {  &trace_pol_class,  &trace_pol_class_constant,  &trace_pol_fieldref_constant,  &trace_pol_methodref_constant,  &trace_pol_interface_methodref_constant,  &trace_pol_field,  &trace_pol_method,};const char *global_classes[] = {};const void *global_constants[] = {};pol_profile_t pol_profile = {  "trace",  &trace_pol_init,  &trace_pol_finish,  sizeof(pol_predicates)/sizeof(pol_predicate_t),  pol_predicates,  sizeof(global_classes)/sizeof(const char *),  global_classes,  sizeof(global_constants)/sizeof(const void *),  global_constants};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -