Comparison

util/debug.lua @ 4693:7ef4faa056fb

util.debug: Some more magic constant fiddling. Don't ask me.
author Matthew Wild <mwild1@gmail.com>
date Wed, 25 Apr 2012 23:16:37 +0100
parent 4684:dc70c4ffb66d
child 4699:c66179261551
comparison
equal deleted inserted replaced
4692:8e7c683d78ca 4693:7ef4faa056fb
86 function get_traceback_table(thread, start_level) 86 function get_traceback_table(thread, start_level)
87 local levels = {}; 87 local levels = {};
88 for level = start_level, math.huge do 88 for level = start_level, math.huge do
89 local info; 89 local info;
90 if thread then 90 if thread then
91 info = debug.getinfo(thread, level); 91 info = debug.getinfo(thread, level+1);
92 else 92 else
93 info = debug.getinfo(level); 93 info = debug.getinfo(level+1);
94 end 94 end
95 if not info then break; end 95 if not info then break; end
96 96
97 levels[(level-start_level)+1] = { 97 levels[(level-start_level)+1] = {
98 level = level; 98 level = level;
126 return nil, "invalid message"; 126 return nil, "invalid message";
127 elseif not level then 127 elseif not level then
128 if type(message) == "number" then 128 if type(message) == "number" then
129 level, message = message, nil; 129 level, message = message, nil;
130 else 130 else
131 level = 2; 131 level = 1;
132 end 132 end
133 end 133 end
134 134
135 message = message and (message.."\n") or ""; 135 message = message and (message.."\n") or "";
136 136
137 local levels = get_traceback_table(thread, level+2); 137 local levels = get_traceback_table(thread, level+3);
138 138
139 local last_source_desc; 139 local last_source_desc;
140 140
141 local lines = {}; 141 local lines = {};
142 for nlevel, level in ipairs(levels) do 142 for nlevel, level in ipairs(levels) do