Now also display records header contents in debug mode.
Signed-off-by: Sebastien GODARD <sysstat@users.noreply.github.com>
#define S_F_LOCAL_TIME 0x00004000
#define S_F_PREFD_TIME_OUTPUT 0x00008000
#define S_F_SVG_SKIP 0x00010000
-/* Same value as S_F_SVG_SKIP above. Used for a different output format */
-#define S_F_RAW_DEBUG_MODE 0x00010000
#define S_F_SVG_AUTOSCALE 0x00020000
#define S_F_SVG_ONE_DAY 0x00040000
#define S_F_SVG_SHOW_IDLE 0x00080000
#define S_F_OPTION_A 0x10000000
#define S_F_OPTION_P 0x20000000
#define S_F_OPTION_I 0x40000000
+#define S_F_RAW_DEBUG_MODE 0x80000000
#define WANT_SINCE_BOOT(m) (((m) & S_F_SINCE_BOOT) == S_F_SINCE_BOOT)
#define WANT_SA_ROTAT(m) (((m) & S_F_SA_ROTAT) == S_F_SA_ROTAT)
(int, char *, struct file_magic *, int, int, int);
int read_record_hdr
(int, void *, struct record_header *, struct file_header *, int, int,
- int, size_t);
+ int, size_t, unsigned int);
void reallocate_all_buffers
(struct activity *, __nr_t);
void replace_nonprintable_char
* @oneof Set to EOF_CONT if an unexpected end of file should not make
* sadf stop. Default behavior is to stop on unexpected EOF.
* @b_size @buffer size.
+ * @flags Flags for common options and system state.
*
* OUT:
* @record_hdr Record header for current sample.
*/
int read_record_hdr(int ifd, void *buffer, struct record_header *record_hdr,
struct file_header *file_hdr, int arch_64, int endian_mismatch,
- int oneof, size_t b_size)
+ int oneof, size_t b_size, unsigned int flags)
{
int rc;
swap_struct(rec_types_nr, record_hdr, arch_64);
}
+ /* Raw output in debug mode */
+ if (DISPLAY_DEBUG_MODE(flags)) {
+ printf("# uptime_cs; %llu; ust_time; %llu; extra_next; %u; record_type; %d; HH:MM:SS; %02d:%02d:%02d\n",
+ record_hdr->uptime_cs, record_hdr->ust_time,
+ record_hdr->extra_next, record_hdr->record_type,
+ record_hdr->hour, record_hdr->minute, record_hdr->second);
+ }
+
/*
* Skip unknown extra structures if present.
* This will be done later for R_COMMENT and R_RESTART records, as extra structures
/* Read current record */
if ((rc = read_record_hdr(ifd, rec_hdr_tmp, &record_hdr[curr], &file_hdr,
- arch_64, endian_mismatch, oneof, sizeof(rec_hdr_tmp))) != 0)
+ arch_64, endian_mismatch, oneof, sizeof(rec_hdr_tmp), flags)) != 0)
/* End of sa file */
return rc;
else if (format == F_RAW_OUTPUT) {
/* Raw output */
if (DISPLAY_DEBUG_MODE(flags)) {
- printf("# %s: %d/%d (%d)\n", act[i]->name,
+ printf("# name; %s; nr_curr; %d; nr_alloc; %d; nr_ini; %d\n", act[i]->name,
act[i]->nr[curr], act[i]->nr_allocated, act[i]->nr_ini);
}
* Start with reading current sample's record header.
*/
*eosaf = read_record_hdr(ifd, rec_hdr_tmp, &record_hdr[*curr],
- &file_hdr, arch_64, endian_mismatch, UEOF_STOP, b_size);
+ &file_hdr, arch_64, endian_mismatch, UEOF_STOP, b_size, flags);
rtype = record_hdr[*curr].record_type;
if (!*eosaf && (rtype != R_RESTART) && (rtype != R_COMMENT)) {
*/
do {
if (read_record_hdr(ifd, rec_hdr_tmp, &record_hdr[0], &file_hdr,
- arch_64, endian_mismatch, UEOF_STOP, sizeof(rec_hdr_tmp))) {
+ arch_64, endian_mismatch, UEOF_STOP, sizeof(rec_hdr_tmp), flags)) {
/* End of sa data file */
return;
}
do {
/* Read next record header */
eosaf = read_record_hdr(ifd, rec_hdr_tmp, &record_hdr[curr],
- &file_hdr, arch_64, endian_mismatch, UEOF_STOP, sizeof(rec_hdr_tmp));
+ &file_hdr, arch_64, endian_mismatch, UEOF_STOP, sizeof(rec_hdr_tmp), flags);
rtype = record_hdr[curr].record_type;
if (!eosaf && (rtype != R_RESTART) && (rtype != R_COMMENT)) {