Handful of minor stack checking fixes
git-svn-id: https://outreach.scidac.gov/svn/spl/trunk@79 7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c
This commit is contained in:
parent
937879f11d
commit
892d51061e
|
@ -48,10 +48,10 @@ print_rec(struct dbg_line **linev, int used, FILE *out)
|
||||||
struct dbg_line *line = linev[i];
|
struct dbg_line *line = linev[i];
|
||||||
struct spl_debug_header *hdr = line->hdr;
|
struct spl_debug_header *hdr = line->hdr;
|
||||||
|
|
||||||
fprintf(out, "%08x:%08x:%u:%u.%06llu:%u:%u:(%s:%u:%s()) %s",
|
fprintf(out, "%08x:%08x:%u:%u.%06llu:%u:%u:%u:(%s:%u:%s()) %s",
|
||||||
hdr->ph_subsys, hdr->ph_mask, hdr->ph_cpu_id,
|
hdr->ph_subsys, hdr->ph_mask, hdr->ph_cpu_id,
|
||||||
hdr->ph_sec, (unsigned long long)hdr->ph_usec,
|
hdr->ph_sec, (unsigned long long)hdr->ph_usec,
|
||||||
hdr->ph_stack, hdr->ph_pid, line->file,
|
hdr->ph_stack, hdr->ph_pid, hdr->ph_stack, line->file,
|
||||||
hdr->ph_line_num, line->fn, line->text);
|
hdr->ph_line_num, line->fn, line->text);
|
||||||
free(line->hdr);
|
free(line->hdr);
|
||||||
free(line);
|
free(line);
|
||||||
|
|
|
@ -172,6 +172,8 @@ do { \
|
||||||
"exceeded 90%% of maximum safe " \
|
"exceeded 90%% of maximum safe " \
|
||||||
"stack size (%lu/%lu)\n", \
|
"stack size (%lu/%lu)\n", \
|
||||||
_stack, THREAD_SIZE); \
|
_stack, THREAD_SIZE); \
|
||||||
|
spl_debug_dumpstack(NULL); \
|
||||||
|
spl_debug_dumplog(); \
|
||||||
} else { \
|
} else { \
|
||||||
spl_debug_msg(NULL, D_TRACE, D_WARNING, \
|
spl_debug_msg(NULL, D_TRACE, D_WARNING, \
|
||||||
file, func, line, "Error " \
|
file, func, line, "Error " \
|
||||||
|
@ -183,13 +185,11 @@ do { \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
#define CHECK_STACK()__CHECK_STACK(__FILE__, __func__, __LINE__)
|
#define CHECK_STACK() __CHECK_STACK(__FILE__, __func__, __LINE__)
|
||||||
|
|
||||||
/* ASSERTION that is safe to use within the debug system */
|
/* ASSERTION that is safe to use within the debug system */
|
||||||
#define __ASSERT(cond) \
|
#define __ASSERT(cond) \
|
||||||
do { \
|
do { \
|
||||||
CHECK_STACK(); \
|
|
||||||
\
|
|
||||||
if (unlikely(!(cond))) { \
|
if (unlikely(!(cond))) { \
|
||||||
printk(KERN_ERR "ASSERTION("#cond") failed"); \
|
printk(KERN_ERR "ASSERTION("#cond") failed"); \
|
||||||
SBUG(); \
|
SBUG(); \
|
||||||
|
|
|
@ -504,8 +504,9 @@ trace_print_to_console(struct spl_debug_header *hdr, int mask, const char *buf,
|
||||||
if ((mask & D_CONSOLE) != 0) {
|
if ((mask & D_CONSOLE) != 0) {
|
||||||
printk("%s%s: %.*s", ptype, prefix, len, buf);
|
printk("%s%s: %.*s", ptype, prefix, len, buf);
|
||||||
} else {
|
} else {
|
||||||
printk("%s%s: %d:(%s:%d:%s()) %.*s", ptype, prefix, hdr->ph_pid,
|
printk("%s%s: %d:%d:(%s:%d:%s()) %.*s", ptype, prefix,
|
||||||
file, hdr->ph_line_num, fn, len, buf);
|
hdr->ph_pid, hdr->ph_stack, file,
|
||||||
|
hdr->ph_line_num, fn, len, buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
@ -1096,7 +1097,7 @@ void spl_debug_dumpstack(struct task_struct *tsk)
|
||||||
if (tsk == NULL)
|
if (tsk == NULL)
|
||||||
tsk = current;
|
tsk = current;
|
||||||
|
|
||||||
CWARN("showing stack for process %d\n", tsk->pid);
|
printk(KERN_ERR "SPL: Showing stack for process %d\n", tsk->pid);
|
||||||
show_task(tsk);
|
show_task(tsk);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(spl_debug_dumpstack);
|
EXPORT_SYMBOL(spl_debug_dumpstack);
|
||||||
|
|
Loading…
Reference in New Issue