---------------有价值的输出信息------------------------
FILE* cpi = NULL;
#include “lstate.h”
char line[256];
LUALIB_API int luaL_printTable(lua_State L,void vp) {
if (cpi == NULL) cpi = fopen("clua.log", "w");
sprintf(line, "printtab start.....\n"); fwrite(line, strlen(line), 1, cpi); fflush(cpi);
Table* t = (Table*)vp;
size_t lsize = 1 << t->lsizenode;
size_t lhsize = 0;
for (int i = 0; i < lsize; i++) {
Node* n = &t->node[i];
if (n->i_key.tvk.tt_ != 0) {
lhsize++;
}
}
if (lhsize != 0) {
int at = 1;
}
for (int i = 0; i < lsize; i++) {
Node* n = &t->node[i];
int tt_ = n->i_key.tvk.tt_;
if (tt_ == 68) {
TString* ts = (TString*)n->i_key.tvk.value_.gc;
int vt_ = (TString*)n->i_val.tt_;
char* tsv = (char*)ts + 24;
sprintf(line, "[%s]:[%d][%llx]\n",tsv,vt_,(size_t)n->i_val.value_.gc);
fwrite(line, strlen(line), 1, cpi); fflush(cpi);
if (strcmp(tsv, "xlua_csharp_namespace") == 0) {
luaL_printTable(L,n->i_val.value_.gc);
}
}
else if(tt_!=0){
int vt_ = (TString*)n->i_val.tt_;
sprintf(line, "[%d]:[%d][%llx]\n", tt_, vt_, (size_t)n->i_val.value_.gc);
fwrite(line, strlen(line), 1, cpi); fflush(cpi);
}
}
sprintf(line, "printtab end.....\n"); fwrite(line, strlen(line), 1, cpi); fflush(cpi);
return 0;
}
LUALIB_API int (luaL_test)(lua_State *L,int d)
{
if (cpi == NULL) cpi = fopen("clua.log", "w");
sprintf(line, "luaL_test %d -----------\n",d); fwrite(line, strlen(line), 1, cpi); fflush(cpi);
//printtab(L->l_G->l_registry.value_.gc);
return d;
}