----- Original Message -----
Hi Dave,
On Fri, 20 Apr 2012 10:03:23 -0400 (EDT)
Dave Anderson <anderson(a)redhat.com> wrote:
> > Sounds good. So what about introducing a new macro LIVE() that
> > indicates that the dump or live system is inconsistent.
>
> Good idea -- queued for crash-6.0.6.
There is another ACTIVE() call in s390x.c that should be changed to
LIVE(). When issuing "bt" on a running task on a live system, we
currently write "(active)".
This should also be done for live dumps:
Question: how does that code path ever get run?
If you try a "bt" on an active task on a live system, it would
print the "(active)" here in back_trace(), prior to calling into
the machine-specific backtrace function:
if (ACTIVE() && !(bt->flags & BT_EFRAME_SEARCH) &&
((bt->task == tt->this_task) || is_task_active(bt->task))) {
if (BT_REFERENCE_CHECK(bt) ||
bt->flags & (BT_TEXT_SYMBOLS_PRINT|BT_TEXT_SYMBOLS_NOPRINT))
return;
if (!(bt->flags &
(BT_KSTACKP|BT_TEXT_SYMBOLS|BT_TEXT_SYMBOLS_ALL)))
fprintf(fp, "(active)\n");
if (!(bt->flags & (BT_TEXT_SYMBOLS|BT_TEXT_SYMBOLS_ALL)))
return;
}
Note the "bt -[tT]" options should be allowed even if the task is active.
Dave
---
s390x.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/s390x.c
+++ b/s390x.c
@@ -1092,7 +1092,7 @@ static void s390x_back_trace_cmd(struct
* Print lowcore and print interrupt stacks when task has cpu
*/
if (s390x_has_cpu(bt)) {
- if (ACTIVE()) {
+ if (LIVE()) {
fprintf(fp,"(active)\n");
return;
}