Procmon is a Linux reimagining of the classic Procmon tool from the Sysinternals suite of tools for Windows. Procmon provides a convenient and efficient way for Linux developers to trace the syscall activity on the system.

Process Monitor for Linux (Preview) Build Status

Process Monitor (Procmon) is a Linux reimagining of the classic Procmon tool from the Sysinternals suite of tools for Windows. Procmon provides a convenient and efficient way for Linux developers to trace the syscall activity on the system.

Procmon in use

Installation & Usage

Requirements

  • OS: Ubuntu 18.04 lts with kernel >= 4.18 and kernel <= 5.3
  • cmake >= 3.14 (build-time only)
  • libsqlite3-dev >= 3.22 (build-time only)

Install Procmon

Checkout our install instructions for distribution specific steps to install Procmon.

Building Procmon from source

1. Install build dependencies

sudo apt-get -y install bison build-essential flex git libedit-dev \
  libllvm6.0 llvm-6.0-dev libclang-6.0-dev python zlib1g-dev libelf-dev

2. Build and install BCC

git clone --branch tag_v0.10.0 https://github.com/iovisor/bcc.git
mkdir bcc/build
cd bcc/build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr
make
sudo make install

3. Build Procmon

git clone https://github.com/Microsoft/Procmon-for-Linux
cd Procmon-for-Linux
mkdir build
cd build
cmake ..
make

Building Procmon Packages

The distribution packages for Procmon for Linux are constructed utilizing cpack.

To build a deb package of Procmon on Ubuntu simply run:

cd build
cpack ..

Usage

Usage: procmon [OPTIONS]
   OPTIONS
      -h/--help                Prints this help screen
      -p/--pids                Comma separated list of process ids to monitor
      -e/--events              Comma separated list of system calls to monitor
      -c/--collect [FILEPATH]  Option to start Procmon in a headless mode
      -f/--file FILEPATH       Open a Procmon trace file

Examples

The following traces all processes and syscalls on the system

sudo procmon

The following traces processes with process id 10 and 20

sudo procmon -p 10,20

The following traces process 20 only syscalls read, write and openat

sudo procmon -p 20 -e read,write,openat

The following traces process 35 and opens Procmon in headless mode to output all captured events to file procmon.db

sudo procmon -p 35 -c procmon.db

The following opens a Procmon tracefile, procmon.db, within the Procmon TUI

sudo procmon -f procmon.db

Feedback

  • Ask a question on StackOverflow (tag with ProcmonForLinux)
  • Request a new feature on GitHub
  • Vote for popular feature requests
  • File a bug in GitHub Issues

Contributing

If you are interested in fixing issues and contributing directly to the code base, please see the document How to Contribute, which covers the following:

  • How to build and run from source
  • The development workflow, including debugging and running tests
  • Coding Guidelines
  • Submitting pull requests

Please see also our Code of Conduct.

License

Copyright (c) Microsoft Corporation. All rights reserved.

Licensed under the MIT License.

Comments
  • Possible memory leak on KDE neon 5.19 (Ubuntu 18.04.4)

    Possible memory leak on KDE neon 5.19 (Ubuntu 18.04.4)

    Host system is KDE neon 5.19 which is based on Ubuntu 18.04.4.

    Running procmon with no arguments results in procman running but constantly consuming memory until there is none left.

    Steps to repo:

    1. Download + Install procmon
    2. Launch procman like so sudo procmon
    3. Which memory consumption ever-increasing

    The number of "Total Events:" never stops increasing which makes me wonder if there's some sort of recursion or loop that is incorrectly calculating the number of events.

  • Does not work on Ubuntu 20.04 LTS

    Does not work on Ubuntu 20.04 LTS

    When I try to start this tool on Ubuntu 20.04 LTS it gives me errors, then opens the UI and then does nothing.

    Output:

    In file included from /virtual/main.c:21:
    In file included from include/linux/dcache.h:7:
    In file included from include/linux/rculist.h:11:
    In file included from include/linux/rcupdate.h:26:
    In file included from include/linux/irqflags.h:16:
    In file included from ./arch/x86/include/asm/irqflags.h:9:
    In file included from ./arch/x86/include/asm/nospec-branch.h:314:
    ./arch/x86/include/asm/segment.h:266:2: error: expected '(' after 'asm'
            alternative_io ("lsl %[seg],%[p]",
            ^
    ./arch/x86/include/asm/alternative.h:240:2: note: expanded from macro 'alternative_io'
            asm_inline volatile (ALTERNATIVE(oldinstr, newinstr, feature)   \
            ^
    include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
    #define asm_inline asm __inline
                           ^
    In file included from /virtual/main.c:21:
    In file included from include/linux/dcache.h:7:
    In file included from include/linux/rculist.h:11:
    In file included from include/linux/rcupdate.h:27:
    In file included from include/linux/preempt.h:78:
    In file included from ./arch/x86/include/asm/preempt.h:7:
    In file included from include/linux/thread_info.h:38:
    In file included from ./arch/x86/include/asm/thread_info.h:12:
    In file included from ./arch/x86/include/asm/page.h:12:
    ./arch/x86/include/asm/page_64.h:49:2: error: expected '(' after 'asm'
            alternative_call_2(clear_page_orig,
            ^
    ./arch/x86/include/asm/alternative.h:256:2: note: expanded from macro 'alternative_call_2'
            asm_inline volatile (ALTERNATIVE_2("call %P[old]", "call %P[new1]", feature1,\
            ^
    include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
    #define asm_inline asm __inline
                           ^
    In file included from /virtual/main.c:21:
    In file included from include/linux/dcache.h:7:
    In file included from include/linux/rculist.h:11:
    In file included from include/linux/rcupdate.h:27:
    In file included from include/linux/preempt.h:78:
    In file included from ./arch/x86/include/asm/preempt.h:7:
    In file included from include/linux/thread_info.h:38:
    In file included from ./arch/x86/include/asm/thread_info.h:53:
    In file included from ./arch/x86/include/asm/cpufeature.h:5:
    In file included from ./arch/x86/include/asm/processor.h:24:
    ./arch/x86/include/asm/special_insns.h:205:2: error: expected '(' after 'asm'
            alternative_io(".byte " __stringify(NOP_DS_PREFIX) "; clflush %P0",
            ^
    ./arch/x86/include/asm/alternative.h:240:2: note: expanded from macro 'alternative_io'
            asm_inline volatile (ALTERNATIVE(oldinstr, newinstr, feature)   \
            ^
    include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
    #define asm_inline asm __inline
                           ^
    In file included from /virtual/main.c:21:
    In file included from include/linux/dcache.h:7:
    In file included from include/linux/rculist.h:11:
    In file included from include/linux/rcupdate.h:27:
    In file included from include/linux/preempt.h:78:
    In file included from ./arch/x86/include/asm/preempt.h:7:
    In file included from include/linux/thread_info.h:38:
    In file included from ./arch/x86/include/asm/thread_info.h:53:
    In file included from ./arch/x86/include/asm/cpufeature.h:5:
    ./arch/x86/include/asm/processor.h:795:2: error: expected '(' after 'asm'
            alternative_input(BASE_PREFETCH, "prefetchnta %P1",
            ^
    ./arch/x86/include/asm/alternative.h:221:2: note: expanded from macro 'alternative_input'
            asm_inline volatile (ALTERNATIVE(oldinstr, newinstr, feature)   \
            ^
    include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
    #define asm_inline asm __inline
                           ^
    In file included from /virtual/main.c:21:
    In file included from include/linux/dcache.h:7:
    In file included from include/linux/rculist.h:11:
    In file included from include/linux/rcupdate.h:27:
    In file included from include/linux/preempt.h:78:
    In file included from ./arch/x86/include/asm/preempt.h:7:
    In file included from include/linux/thread_info.h:38:
    In file included from ./arch/x86/include/asm/thread_info.h:53:
    In file included from ./arch/x86/include/asm/cpufeature.h:5:
    ./arch/x86/include/asm/processor.h:807:2: error: expected '(' after 'asm'
            alternative_input(BASE_PREFETCH, "prefetchw %P1",
            ^
    ./arch/x86/include/asm/alternative.h:221:2: note: expanded from macro 'alternative_input'
            asm_inline volatile (ALTERNATIVE(oldinstr, newinstr, feature)   \
            ^
    include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
    #define asm_inline asm __inline
                           ^
    In file included from /virtual/main.c:21:
    In file included from include/linux/dcache.h:7:
    In file included from include/linux/rculist.h:11:
    In file included from include/linux/rcupdate.h:27:
    In file included from include/linux/preempt.h:78:
    In file included from ./arch/x86/include/asm/preempt.h:7:
    include/linux/thread_info.h:134:2: error: expected '(' after 'asm'
            WARN(1, "Buffer overflow detected (%d < %lu)!\n", size, count);
            ^
    include/asm-generic/bug.h:124:3: note: expanded from macro 'WARN'
                    __WARN_printf(TAINT_WARN, format);                      \
                    ^
    include/asm-generic/bug.h:93:3: note: expanded from macro '__WARN_printf'
                    __WARN_FLAGS(BUGFLAG_NO_CUT_HERE | BUGFLAG_TAINT(taint));\
                    ^
    ./arch/x86/include/asm/bug.h:79:2: note: expanded from macro '__WARN_FLAGS'
            _BUG_FLAGS(ASM_UD2, BUGFLAG_WARNING|(flags));           \
            ^
    ./arch/x86/include/asm/bug.h:35:2: note: expanded from macro '_BUG_FLAGS'
            asm_inline volatile("1:\t" ins "\n"                             \
            ^
    include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
    #define asm_inline asm __inline
                           ^
    In file included from /virtual/main.c:21:
    In file included from include/linux/dcache.h:7:
    In file included from include/linux/rculist.h:11:
    In file included from include/linux/rcupdate.h:27:
    In file included from include/linux/preempt.h:78:
    In file included from ./arch/x86/include/asm/preempt.h:7:
    include/linux/thread_info.h:150:6: error: expected '(' after 'asm'
            if (WARN_ON_ONCE(bytes > INT_MAX))
                ^
    include/asm-generic/bug.h:98:3: note: expanded from macro 'WARN_ON_ONCE'
                    __WARN_FLAGS(BUGFLAG_ONCE |                     \
                    ^
    ./arch/x86/include/asm/bug.h:79:2: note: expanded from macro '__WARN_FLAGS'
            _BUG_FLAGS(ASM_UD2, BUGFLAG_WARNING|(flags));           \
            ^
    ./arch/x86/include/asm/bug.h:35:2: note: expanded from macro '_BUG_FLAGS'
            asm_inline volatile("1:\t" ins "\n"                             \
            ^
    include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
    #define asm_inline asm __inline
                           ^
    In file included from /virtual/main.c:21:
    In file included from include/linux/dcache.h:7:
    In file included from include/linux/rculist.h:11:
    include/linux/rcupdate.h:893:2: error: expected '(' after 'asm'
            WARN_ON_ONCE(func != (rcu_callback_t)~0L);
            ^
    include/asm-generic/bug.h:98:3: note: expanded from macro 'WARN_ON_ONCE'
                    __WARN_FLAGS(BUGFLAG_ONCE |                     \
                    ^
    ./arch/x86/include/asm/bug.h:79:2: note: expanded from macro '__WARN_FLAGS'
            _BUG_FLAGS(ASM_UD2, BUGFLAG_WARNING|(flags));           \
            ^
    ./arch/x86/include/asm/bug.h:35:2: note: expanded from macro '_BUG_FLAGS'
            asm_inline volatile("1:\t" ins "\n"                             \
            ^
    include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
    #define asm_inline asm __inline
                           ^
    In file included from /virtual/main.c:23:
    In file included from include/linux/fdtable.h:16:
    In file included from include/linux/fs.h:15:
    In file included from include/linux/radix-tree.h:18:
    In file included from include/linux/xarray.h:14:
    In file included from include/linux/gfp.h:6:
    In file included from include/linux/mmzone.h:21:
    In file included from include/linux/mm_types.h:14:
    In file included from include/linux/uprobes.h:49:
    In file included from ./arch/x86/include/asm/uprobes.h:13:
    In file included from include/linux/notifier.h:16:
    In file included from include/linux/srcu.h:21:
    In file included from include/linux/workqueue.h:9:
    In file included from include/linux/timer.h:6:
    include/linux/ktime.h:171:2: error: expected '(' after 'asm'
            WARN_ON(div < 0);
            ^
    include/asm-generic/bug.h:115:3: note: expanded from macro 'WARN_ON'
                    __WARN();                                               \
                    ^
    include/asm-generic/bug.h:90:19: note: expanded from macro '__WARN'
    #define __WARN()                __WARN_FLAGS(BUGFLAG_TAINT(TAINT_WARN))
                                    ^
    ./arch/x86/include/asm/bug.h:79:2: note: expanded from macro '__WARN_FLAGS'
            _BUG_FLAGS(ASM_UD2, BUGFLAG_WARNING|(flags));           \
            ^
    ./arch/x86/include/asm/bug.h:35:2: note: expanded from macro '_BUG_FLAGS'
            asm_inline volatile("1:\t" ins "\n"                             \
            ^
    include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
    #define asm_inline asm __inline
                           ^
    In file included from /virtual/main.c:23:
    In file included from include/linux/fdtable.h:16:
    In file included from include/linux/fs.h:15:
    In file included from include/linux/radix-tree.h:18:
    In file included from include/linux/xarray.h:14:
    In file included from include/linux/gfp.h:6:
    In file included from include/linux/mmzone.h:21:
    In file included from include/linux/mm_types.h:14:
    In file included from include/linux/uprobes.h:49:
    In file included from ./arch/x86/include/asm/uprobes.h:13:
    In file included from include/linux/notifier.h:16:
    include/linux/srcu.h:179:2: error: expected '(' after 'asm'
            WARN_ON_ONCE(idx & ~0x1);
            ^
    include/asm-generic/bug.h:98:3: note: expanded from macro 'WARN_ON_ONCE'
                    __WARN_FLAGS(BUGFLAG_ONCE |                     \
                    ^
    ./arch/x86/include/asm/bug.h:79:2: note: expanded from macro '__WARN_FLAGS'
            _BUG_FLAGS(ASM_UD2, BUGFLAG_WARNING|(flags));           \
            ^
    ./arch/x86/include/asm/bug.h:35:2: note: expanded from macro '_BUG_FLAGS'
            asm_inline volatile("1:\t" ins "\n"                             \
            ^
    include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
    #define asm_inline asm __inline
                           ^
    In file included from /virtual/main.c:23:
    In file included from include/linux/fdtable.h:16:
    In file included from include/linux/fs.h:15:
    In file included from include/linux/radix-tree.h:18:
    In file included from include/linux/xarray.h:14:
    In file included from include/linux/gfp.h:6:
    In file included from include/linux/mmzone.h:22:
    include/linux/page-flags.h:565:2: error: expected '(' after 'asm'
            BUG_ON(!PageHead(page));
            ^
    include/asm-generic/bug.h:62:57: note: expanded from macro 'BUG_ON'
    #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
                                                            ^
    ./arch/x86/include/asm/bug.h:73:2: note: expanded from macro 'BUG'
            _BUG_FLAGS(ASM_UD2, 0);                                 \
            ^
    ./arch/x86/include/asm/bug.h:35:2: note: expanded from macro '_BUG_FLAGS'
            asm_inline volatile("1:\t" ins "\n"                             \
            ^
    include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
    #define asm_inline asm __inline
                           ^
    In file included from /virtual/main.c:23:
    In file included from include/linux/fdtable.h:16:
    In file included from include/linux/fs.h:15:
    In file included from include/linux/radix-tree.h:18:
    In file included from include/linux/xarray.h:14:
    In file included from include/linux/gfp.h:6:
    In file included from include/linux/mmzone.h:971:
    In file included from ./arch/x86/include/asm/mmzone.h:5:
    In file included from ./arch/x86/include/asm/mmzone_64.h:11:
    In file included from ./arch/x86/include/asm/smp.h:13:
    In file included from ./arch/x86/include/asm/apic.h:11:
    In file included from ./arch/x86/include/asm/fixmap.h:190:
    include/asm-generic/fixmap.h:38:2: error: expected '(' after 'asm'
            BUG_ON(vaddr >= FIXADDR_TOP || vaddr < FIXADDR_START);
            ^
    include/asm-generic/bug.h:62:57: note: expanded from macro 'BUG_ON'
    #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
                                                            ^
    ./arch/x86/include/asm/bug.h:73:2: note: expanded from macro 'BUG'
            _BUG_FLAGS(ASM_UD2, 0);                                 \
            ^
    ./arch/x86/include/asm/bug.h:35:2: note: expanded from macro '_BUG_FLAGS'
            asm_inline volatile("1:\t" ins "\n"                             \
            ^
    include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
    #define asm_inline asm __inline
                           ^
    In file included from /virtual/main.c:23:
    In file included from include/linux/fdtable.h:16:
    In file included from include/linux/fs.h:15:
    In file included from include/linux/radix-tree.h:18:
    In file included from include/linux/xarray.h:14:
    In file included from include/linux/gfp.h:6:
    In file included from include/linux/mmzone.h:971:
    In file included from ./arch/x86/include/asm/mmzone.h:5:
    In file included from ./arch/x86/include/asm/mmzone_64.h:11:
    In file included from ./arch/x86/include/asm/smp.h:13:
    ./arch/x86/include/asm/apic.h:107:2: error: expected '(' after 'asm'
            alternative_io("movl %0, %P1", "xchgl %0, %P1", X86_BUG_11AP,
            ^
    ./arch/x86/include/asm/alternative.h:240:2: note: expanded from macro 'alternative_io'
            asm_inline volatile (ALTERNATIVE(oldinstr, newinstr, feature)   \
            ^
    include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
    #define asm_inline asm __inline
                           ^
    In file included from /virtual/main.c:23:
    In file included from include/linux/fdtable.h:16:
    In file included from include/linux/fs.h:15:
    In file included from include/linux/radix-tree.h:18:
    include/linux/xarray.h:54:2: error: expected '(' after 'asm'
            WARN_ON((long)v < 0);
            ^
    include/asm-generic/bug.h:115:3: note: expanded from macro 'WARN_ON'
                    __WARN();                                               \
                    ^
    include/asm-generic/bug.h:90:19: note: expanded from macro '__WARN'
    #define __WARN()                __WARN_FLAGS(BUGFLAG_TAINT(TAINT_WARN))
                                    ^
    ./arch/x86/include/asm/bug.h:79:2: note: expanded from macro '__WARN_FLAGS'
            _BUG_FLAGS(ASM_UD2, BUGFLAG_WARNING|(flags));           \
            ^
    ./arch/x86/include/asm/bug.h:35:2: note: expanded from macro '_BUG_FLAGS'
            asm_inline volatile("1:\t" ins "\n"                             \
            ^
    include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
    #define asm_inline asm __inline
                           ^
    In file included from /virtual/main.c:23:
    In file included from include/linux/fdtable.h:16:
    In file included from include/linux/fs.h:39:
    In file included from include/linux/ioprio.h:7:
    include/linux/iocontext.h:132:2: error: expected '(' after 'asm'
            WARN_ON_ONCE(atomic_long_read(&ioc->refcount) <= 0);
            ^
    include/asm-generic/bug.h:98:3: note: expanded from macro 'WARN_ON_ONCE'
                    __WARN_FLAGS(BUGFLAG_ONCE |                     \
                    ^
    ./arch/x86/include/asm/bug.h:79:2: note: expanded from macro '__WARN_FLAGS'
            _BUG_FLAGS(ASM_UD2, BUGFLAG_WARNING|(flags));           \
            ^
    ./arch/x86/include/asm/bug.h:35:2: note: expanded from macro '_BUG_FLAGS'
            asm_inline volatile("1:\t" ins "\n"                             \
            ^
    include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
    #define asm_inline asm __inline
                           ^
    In file included from /virtual/main.c:23:
    In file included from include/linux/fdtable.h:16:
    In file included from include/linux/fs.h:39:
    In file included from include/linux/ioprio.h:7:
    include/linux/iocontext.h:133:2: error: expected '(' after 'asm'
            WARN_ON_ONCE(atomic_read(&ioc->active_ref) <= 0);
            ^
    include/asm-generic/bug.h:98:3: note: expanded from macro 'WARN_ON_ONCE'
                    __WARN_FLAGS(BUGFLAG_ONCE |                     \
                    ^
    ./arch/x86/include/asm/bug.h:79:2: note: expanded from macro '__WARN_FLAGS'
            _BUG_FLAGS(ASM_UD2, BUGFLAG_WARNING|(flags));           \
            ^
    ./arch/x86/include/asm/bug.h:35:2: note: expanded from macro '_BUG_FLAGS'
            asm_inline volatile("1:\t" ins "\n"                             \
            ^
    include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
    #define asm_inline asm __inline
                           ^
    In file included from /virtual/main.c:23:
    In file included from include/linux/fdtable.h:16:
    In file included from include/linux/fs.h:39:
    In file included from include/linux/ioprio.h:7:
    include/linux/iocontext.h:142:2: error: expected '(' after 'asm'
            WARN_ON_ONCE(atomic_read(&ioc->nr_tasks) <= 0);
            ^
    include/asm-generic/bug.h:98:3: note: expanded from macro 'WARN_ON_ONCE'
                    __WARN_FLAGS(BUGFLAG_ONCE |                     \
                    ^
    ./arch/x86/include/asm/bug.h:79:2: note: expanded from macro '__WARN_FLAGS'
            _BUG_FLAGS(ASM_UD2, BUGFLAG_WARNING|(flags));           \
            ^
    ./arch/x86/include/asm/bug.h:35:2: note: expanded from macro '_BUG_FLAGS'
            asm_inline volatile("1:\t" ins "\n"                             \
            ^
    include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
    #define asm_inline asm __inline
                           ^
    In file included from /virtual/main.c:23:
    In file included from include/linux/fdtable.h:16:
    In file included from include/linux/fs.h:245:
    include/linux/quota.h:114:3: error: expected '(' after 'asm'
                    BUG();
                    ^
    ./arch/x86/include/asm/bug.h:73:2: note: expanded from macro 'BUG'
            _BUG_FLAGS(ASM_UD2, 0);                                 \
            ^
    ./arch/x86/include/asm/bug.h:35:2: note: expanded from macro '_BUG_FLAGS'
            asm_inline volatile("1:\t" ins "\n"                             \
            ^
    include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
    #define asm_inline asm __inline
                           ^
    In file included from /virtual/main.c:23:
    In file included from include/linux/fdtable.h:16:
    In file included from include/linux/fs.h:245:
    include/linux/quota.h:141:3: error: expected '(' after 'asm'
                    BUG();
                    ^
    ./arch/x86/include/asm/bug.h:73:2: note: expanded from macro 'BUG'
            _BUG_FLAGS(ASM_UD2, 0);                                 \
            ^
    ./arch/x86/include/asm/bug.h:35:2: note: expanded from macro '_BUG_FLAGS'
            asm_inline volatile("1:\t" ins "\n"                             \
            ^
    include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
    #define asm_inline asm __inline
                           ^
    fatal error: too many errors emitted, stopping now [-ferror-limit=]
    20 errors generated.
    

    Version info: procmon: procmon_1.0.0-291_amd64.deb lsb_release:

    Distributor ID:	Ubuntu
    Description:	Ubuntu 20.04 LTS
    Release:	20.04
    Codename:	focal
    

    uname: Linux 5.4.0-40-generic #44-Ubuntu SMP Tue Jun 23 00:01:04 UTC 2020 x86_64 x86_64 GNU/Linux

  • Procmon Install Fails

    Procmon Install Fails

    I issued the set of commands both in #1 and #2. Neither works. The first fails stating that it is not a DEB package. The 2nd fails: sudo apt-get install procmon Reading package lists... Done Building dependency tree
    Reading state information... Done E: Unable to locate package procmon ** Mint 20.

  • [Solus Linux] /sys/kernel/debug/tracing/events/syscalls No such file or directory

    [Solus Linux] /sys/kernel/debug/tracing/events/syscalls No such file or directory

    Was able to compile after installing these packages on Solus Linux:

    sudo eopkg it -c system.devel
    sudo eopkg install solbuild llvm-clang-devel cmake bison flex libelf-devel cmake
    

    However procmon fails to start:

    terminate called after throwing an instance of 'std::experimental::filesystem::v1::__cxx11::filesystem_error'
      what():  filesystem error: directory iterator cannot open directory: No such file or directory [/sys/kernel/debug/tracing/events/syscalls]
    
  • Tool does not work on ubuntu 18.04 with GA kernel

    Tool does not work on ubuntu 18.04 with GA kernel

    When running on ubuntu 18.04 the tool doesn't show any information. I can see the main screen, but number of event is stuck at 0, even after a few minutes spent running other apps etc.

    Minimum requirements list just ubuntu 18.04 but on my Ubuntu 18.04 machine the tool shows no information and when I quit I get this message on the terminal:

    HINT: bpf_get_stack missing (added in Linux 4.18).
    

    My PC is actually running 4.15 that is the default kernel release for ubuntu 18.04:

    # lsb_release -a
    No LSB modules are available.
    Distributor ID:	Ubuntu
    Description:	Ubuntu 18.04.4 LTS
    Release:	18.04
    Codename:	bionic
    # uname -a
    Linux valterP52S 4.15.0-111-generic #112-Ubuntu SMP Thu Jul 9 20:32:34 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
    

    Here's the full output from the tool:

    # sudo procmon
    bpf: Failed to load program: Invalid argument
    0: (bf) r8 = r1
    1: (b7) r9 = 0
    2: (63) *(u32 *)(r10 -8) = r9
    3: (18) r1 = 0xffff956918a24200
    5: (bf) r2 = r10
    6: (07) r2 += -8
    7: (85) call bpf_map_lookup_elem#1
    8: (55) if r0 != 0x0 goto pc+1
     R0=inv0 R8=ctx(id=0,off=0,imm=0) R9=inv0 R10=fp0
    9: (05) goto pc+6
    16: (85) call bpf_get_current_pid_tgid#14
    17: (bf) r7 = r0
    18: (7b) *(u64 *)(r10 -16) = r7
    19: (b7) r1 = 0
    20: (63) *(u32 *)(r10 -8) = r1
    21: (18) r1 = 0xffff956856ac7000
    23: (bf) r2 = r10
    24: (07) r2 += -8
    25: (85) call bpf_map_lookup_elem#1
    26: (55) if r0 != 0x0 goto pc+1
     R0=inv0 R7=inv(id=0) R8=ctx(id=0,off=0,imm=0) R9=inv0 R10=fp0
    27: (05) goto pc+164
    192: (79) r1 = *(u64 *)(r8 +8)
    193: (63) *(u32 *)(r10 -20) = r1
    194: (18) r1 = 0xffff956856ac5a00
    196: (bf) r2 = r10
    197: (07) r2 += -20
    198: (85) call bpf_map_lookup_elem#1
    199: (18) r9 = 0xffffffff
    201: (15) if r0 == 0x0 goto pc+101
     R0=map_value(id=0,off=0,ks=4,vs=728,imm=0) R7=inv(id=0) R8=ctx(id=0,off=0,imm=0) R9=inv4294967295 R10=fp0
    202: (7b) *(u64 *)(r10 -32) = r0
    203: (b7) r1 = 0
    204: (63) *(u32 *)(r10 -24) = r1
    205: (18) r1 = 0xffff956918a24800
    207: (bf) r2 = r10
    208: (07) r2 += -24
    209: (85) call bpf_map_lookup_elem#1
    210: (bf) r7 = r0
    211: (18) r9 = 0xffffffff
    213: (15) if r7 == 0x0 goto pc+89
     R0=map_value(id=0,off=0,ks=4,vs=704,imm=0) R7=map_value(id=0,off=0,ks=4,vs=704,imm=0) R8=ctx(id=0,off=0,imm=0) R9=inv4294967295 R10=fp0 fp-32=map_value
    214: (79) r1 = *(u64 *)(r10 -16)
    215: (63) *(u32 *)(r7 +0) = r1
     R0=map_value(id=0,off=0,ks=4,vs=704,imm=0) R1=inv(id=0) R7=map_value(id=0,off=0,ks=4,vs=704,imm=0) R8=ctx(id=0,off=0,imm=0) R9=inv4294967295 R10=fp0 fp-32=map_value
    216: (61) r1 = *(u32 *)(r10 -20)
    217: (63) *(u32 *)(r7 +4) = r1
     R0=map_value(id=0,off=0,ks=4,vs=704,imm=0) R1=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R7=map_value(id=0,off=0,ks=4,vs=704,imm=0) R8=ctx(id=0,off=0,imm=0) R9=inv4294967295 R10=fp0 fp-32=map_value
    218: (bf) r2 = r7
    219: (07) r2 += 24
    220: (bf) r1 = r8
    221: (b7) r3 = 256
    222: (b7) r4 = 256
    223: (85) call unknown#67
    invalid func unknown#67
    
    HINT: bpf_get_stack missing (added in Linux 4.18).
    
  • Arch Linux problems

    Arch Linux problems

    I added procmon to AUR.

    I added dependencies following your instructions. See PKGBUILD.

    $ yay -S ncurses5-compat-libs bcc procmon
    $ sudo procmon                                       
    procmon: /usr/lib/libpanel.so.5: version `NCURSES_5.0.19991023' not found (required by procmon)
    procmon: /usr/lib/libncurses.so.5: version `NCURSES_5.0.19991023' not found (required by procmon)
    

    How to fix it?

    yay -Ql ncurses5-compat-libs                           
    ncurses5-compat-libs /usr/
    ncurses5-compat-libs /usr/bin/
    ncurses5-compat-libs /usr/bin/ncursesw5-config
    ncurses5-compat-libs /usr/lib/
    ncurses5-compat-libs /usr/lib/libform.so.5
    ncurses5-compat-libs /usr/lib/libformw.so.5
    ncurses5-compat-libs /usr/lib/libformw.so.5.9
    ncurses5-compat-libs /usr/lib/libmenu.so.5
    ncurses5-compat-libs /usr/lib/libmenuw.so.5
    ncurses5-compat-libs /usr/lib/libmenuw.so.5.9
    ncurses5-compat-libs /usr/lib/libncurses++.so.5
    ncurses5-compat-libs /usr/lib/libncurses++w.so.5
    ncurses5-compat-libs /usr/lib/libncurses++w.so.5.9
    ncurses5-compat-libs /usr/lib/libncurses.so.5
    ncurses5-compat-libs /usr/lib/libncursesw.so.5
    ncurses5-compat-libs /usr/lib/libncursesw.so.5.9
    ncurses5-compat-libs /usr/lib/libpanel.so.5
    ncurses5-compat-libs /usr/lib/libpanelw.so.5
    ncurses5-compat-libs /usr/lib/libpanelw.so.5.9
    ncurses5-compat-libs /usr/lib/libtic.so.5
    ncurses5-compat-libs /usr/lib/libtinfo.so.5
    ncurses5-compat-libs /usr/share/
    ncurses5-compat-libs /usr/share/licenses/
    ncurses5-compat-libs /usr/share/licenses/ncurses5-compat-libs/
    ncurses5-compat-libs /usr/share/licenses/ncurses5-compat-libs/LICENSE
    
    $ yay -Qi ncurses
    Name            : ncurses
    Version         : 6.2-1
    Description     : System V Release 4.0 curses emulation library
    Architecture    : x86_64
    URL             : https://invisible-island.net/ncurses/ncurses.html
    Licenses        : MIT
    Groups          : None
    Provides        : libncurses++w.so=6-64  libformw.so=6-64  libmenuw.so=6-64  libpanelw.so=6-64  libncursesw.so=6-64
    Depends On      : glibc  gcc-libs
    Optional Deps   : None
    Required By     : asdf-vm  aspell  bash  gdb  gnugo  gptfdisk  guile  guile2.0  htop  lame  less  libcaca  libcdio  libedit  libxml2  llvm-libs
                      nano  openshadinglanguage  pinentry  procps-ng  psmisc  readline  texinfo
    Optional For    : vlc
    Conflicts With  : None
    Replaces        : alacritty-terminfo
    Installed Size  : 3.55 MiB
    Packager        : Bartłomiej Piotrowski <[email protected]>
    Build Date      : Thu 13 Feb 2020 11:08:28 AM MSK
    Install Date    : Thu 23 Jul 2020 11:10:01 AM MSK
    Install Reason  : Installed as a dependency for another package
    Install Script  : No
    Validated By    : Signature
    
  • fail after install on wsl2 - std::experimental::filesystem::v1::__cxx11::filesystem_error

    fail after install on wsl2 - std::experimental::filesystem::v1::__cxx11::filesystem_error

    After installing from https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb Running on wsl2 18.04 I get the following error;

    ~$ sudo procmon
    terminate called after throwing an instance of 'std::experimental::filesystem::v1::__cxx11::filesystem_error'
      what():  filesystem error: directory iterator cannot open directory: No such file or directory [/sys/kernel/debug/tracing/events/syscalls]
    Aborted
    
  • Can not build on Fedora 35

    Can not build on Fedora 35

    [ 50%] Building CXX object _deps/bcc-build/src/cc/frontends/b/CMakeFiles/b_frontend.dir/type_check.cc.o
    [ 53%] Building CXX object _deps/bcc-build/src/cc/frontends/b/CMakeFiles/b_frontend.dir/parser.yy.cc.o
    [ 53%] Building CXX object _deps/bcc-build/src/cc/frontends/b/CMakeFiles/b_frontend.dir/lexer.ll.cc.o
    [ 53%] Linking CXX static library libb_frontend.a
    [ 53%] Built target b_frontend
    [ 53%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/bcc_common.cc.o
    [ 53%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/bpf_module.cc.o
    [ 57%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/bcc_btf.cc.o
    /home/kdas/code/Procmon-for-Linux/build/_deps/bcc-src/src/cc/bcc_btf.cc: In member function ‘int ebpf::BTF::get_btf_info(const char*, void**, unsigned int*, unsigned int*, void**, unsigned int*, unsigned int*)’:
    /home/kdas/code/Procmon-for-Linux/build/_deps/bcc-src/src/cc/bcc_btf.cc:315:33: warning: ‘int btf_ext__reloc_func_info(const btf*, const btf_ext*, const char*, __u32, void**, __u32*)’ is deprecated: btf_ext__reloc_func_info was never meant as a public API and has wrong assumptions embedded in it; it will be removed in the future libbpf versions [-Wdeprecated-declarations]
      315 |   ret = btf_ext__reloc_func_info(btf_, btf_ext_, fname, 0,
          |         ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
      316 |         func_info, func_info_cnt);
          |         ~~~~~~~~~~~~~~~~~~~~~~~~~
    In file included from /home/kdas/code/Procmon-for-Linux/build/_deps/bcc-src/src/cc/bcc_libbpf_inc.h:9,
                     from /home/kdas/code/Procmon-for-Linux/build/_deps/bcc-src/src/cc/bcc_btf.cc:22:
    /home/kdas/code/Procmon-for-Linux/build/_deps/bcc-src/src/cc/libbpf/src/btf.h:80:5: note: declared here
       80 | int btf_ext__reloc_func_info(const struct btf *btf,
          |     ^~~~~~~~~~~~~~~~~~~~~~~~
    /home/kdas/code/Procmon-for-Linux/build/_deps/bcc-src/src/cc/bcc_btf.cc:322:33: warning: ‘int btf_ext__reloc_line_info(const btf*, const btf_ext*, const char*, __u32, void**, __u32*)’ is deprecated: btf_ext__reloc_line_info was never meant as a public API and has wrong assumptions embedded in it; it will be removed in the future libbpf versions [-Wdeprecated-declarations]
      322 |   ret = btf_ext__reloc_line_info(btf_, btf_ext_, fname, 0,
          |         ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
      323 |         line_info, line_info_cnt);
          |         ~~~~~~~~~~~~~~~~~~~~~~~~~
    In file included from /home/kdas/code/Procmon-for-Linux/build/_deps/bcc-src/src/cc/bcc_libbpf_inc.h:9,
                     from /home/kdas/code/Procmon-for-Linux/build/_deps/bcc-src/src/cc/bcc_btf.cc:22:
    /home/kdas/code/Procmon-for-Linux/build/_deps/bcc-src/src/cc/libbpf/src/btf.h:85:5: note: declared here
       85 | int btf_ext__reloc_line_info(const struct btf *btf,
          |     ^~~~~~~~~~~~~~~~~~~~~~~~
    [ 57%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/exported_files.cc.o
    [ 57%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/bcc_debug.cc.o
    /home/kdas/code/Procmon-for-Linux/build/_deps/bcc-src/src/cc/bcc_debug.cc: In member function ‘void ebpf::SourceDebugger::dump()’:
    /home/kdas/code/Procmon-for-Linux/build/_deps/bcc-src/src/cc/bcc_debug.cc:132:53: error: no matching function for call to ‘llvm::MCContext::MCContext(std::unique_ptr<llvm::MCAsmInfo>::pointer, std::unique_ptr<llvm::MCRegisterInfo>::pointer, llvm::MCObjectFileInfo*, std::nullptr_t)’
      132 |   MCContext Ctx(MAI.get(), MRI.get(), &MOFI, nullptr);
          |                                                     ^
    In file included from /home/kdas/code/Procmon-for-Linux/build/_deps/bcc-src/src/cc/bcc_debug.cc:26:
    /usr/include/llvm/MC/MCContext.h:398:14: note: candidate: ‘llvm::MCContext::MCContext(const llvm::Triple&, const llvm::MCAsmInfo*, const llvm::MCRegisterInfo*, const llvm::MCSubtargetInfo*, const llvm::SourceMgr*, const llvm::MCTargetOptions*, bool)’
      398 |     explicit MCContext(const Triple &TheTriple, const MCAsmInfo *MAI,
          |              ^~~~~~~~~
    /usr/include/llvm/MC/MCContext.h:398:38: note:   no known conversion for argument 1 from ‘std::unique_ptr<llvm::MCAsmInfo>::pointer’ {aka ‘llvm::MCAsmInfo*’} to ‘const llvm::Triple&’
      398 |     explicit MCContext(const Triple &TheTriple, const MCAsmInfo *MAI,
          |                        ~~~~~~~~~~~~~~^~~~~~~~~
    /home/kdas/code/Procmon-for-Linux/build/_deps/bcc-src/src/cc/bcc_debug.cc:133:8: error: ‘class llvm::MCObjectFileInfo’ has no member named ‘InitMCObjectFileInfo’; did you mean ‘initMCObjectFileInfo’?
      133 |   MOFI.InitMCObjectFileInfo(TheTriple, false, Ctx, false);
          |        ^~~~~~~~~~~~~~~~~~~~
          |        initMCObjectFileInfo
    make[2]: *** [_deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/build.make:132: _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/bcc_debug.cc.o] Error 1
    make[1]: *** [CMakeFiles/Makefile2:1017: _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/all] Error 2
    make: *** [Makefile:166: all] Error 2
    
    
  • [Makefile:163: all] Error 2 - Debian 10 with cmake 3.14.0

    [Makefile:163: all] Error 2 - Debian 10 with cmake 3.14.0

    Hello, I am compiling with cmake 3.14.0 and Debian 10 into a Docker container but I am getting the following error at the end:

    In file included from /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/api/BPF.h:25, from /root/Procmon-for-Linux/src/configuration/../tracer/ebpf/ebpf_tracer_engine.h:6, from /root/Procmon-for-Linux/src/configuration/procmon_configuration.h:21, from /root/Procmon-for-Linux/src/configuration/procmon_configuration.cpp:4: /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h: In constructor 'ebpf::BPFQueueStackTable::BPFQueueStackTable(const ebpf::TableDesc&)': /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h:169:22: error: 'BPF_MAP_TYPE_QUEUE' was not declared in this scope if (desc.type != BPF_MAP_TYPE_QUEUE && ^~~~~~~~~~~~~~~~~~ /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h:169:22: note: suggested alternative: 'BPF_MAP_TYPE_CPUMAP' if (desc.type != BPF_MAP_TYPE_QUEUE && ^~~~~~~~~~~~~~~~~~ BPF_MAP_TYPE_CPUMAP /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h:170:22: error: 'BPF_MAP_TYPE_STACK' was not declared in this scope desc.type != BPF_MAP_TYPE_STACK) ^~~~~~~~~~~~~~~~~~ /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h:170:22: note: suggested alternative: 'BPF_MAP_TYPE_HASH' desc.type != BPF_MAP_TYPE_STACK) ^~~~~~~~~~~~~~~~~~ BPF_MAP_TYPE_HASH /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h: In constructor 'ebpf::BPFSkStorageTable::BPFSkStorageTable(const ebpf::TableDesc&)': /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h:509:22: error: 'BPF_MAP_TYPE_SK_STORAGE' was not declared in this scope if (desc.type != BPF_MAP_TYPE_SK_STORAGE) ^~~~~~~~~~~~~~~~~~~~~~~ /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h:509:22: note: suggested alternative: 'BPF_MAP_TYPE_CGROUP_STORAGE' if (desc.type != BPF_MAP_TYPE_SK_STORAGE) ^~~~~~~~~~~~~~~~~~~~~~~ BPF_MAP_TYPE_CGROUP_STORAGE /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h: In constructor 'ebpf::BPFPercpuCgStorageTable::BPFPercpuCgStorageTable(const ebpf::TableDesc&)': /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h:564:22: error: 'BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE' was not declared in this scope if (desc.type != BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h:564:22: note: suggested alternative: 'BPF_MAP_TYPE_CGROUP_STORAGE' if (desc.type != BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BPF_MAP_TYPE_CGROUP_STORAGE make[2]: *** [src/configuration/CMakeFiles/configuration-static.dir/build.make:63: src/configuration/CMakeFiles/configuration-static.dir/procmon_configuration.cpp.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:2894: src/configuration/CMakeFiles/configuration-static.dir/all] Error 2 make: *** [Makefile:163: all] Error 2

    Is there a specific cmake version that is compiling fine?

  • error: 'BPF_MAP_TYPE_QUEUE' was not declared in this scope

    error: 'BPF_MAP_TYPE_QUEUE' was not declared in this scope

    ` root@ubuntu:~/Procmon-for-Linux/build# cmake .. -- The C compiler identification is GNU 7.5.0 -- The CXX compiler identification is GNU 7.5.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Found Curses: /usr/lib/x86_64-linux-gnu/libcurses.so CMake Deprecation Warning at build/_deps/bcc-src/CMakeLists.txt:3 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake.

    Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.

    -- Latest recognized Git tag is -128-NOTFOUND -- Git HEAD is b35d4cc583ec747dfc18dabef974d1a6e5a3eeb0 -- Revision is 128-NOTFOUND-b35d4cc5 -- Performing Test HAVE_NO_PIE_FLAG -- Performing Test HAVE_NO_PIE_FLAG - Success -- Performing Test HAVE_REALLOCARRAY_SUPPORT -- Performing Test HAVE_REALLOCARRAY_SUPPORT - Success -- Found LLVM: /usr/lib/llvm-6.0/include 6.0.0 -- Found BISON: /usr/bin/bison (found version "3.0.4") -- Found FLEX: /usr/bin/flex (found version "2.6.4") -- Found LibElf: /usr/lib/x86_64-linux-gnu/libelf.so -- Performing Test ELF_GETSHDRSTRNDX -- Performing Test ELF_GETSHDRSTRNDX - Success -- Using static-libstdc++ -- Could NOT find LuaJIT (missing: LUAJIT_LIBRARIES LUAJIT_INCLUDE_DIR) CMake Warning at build/_deps/bcc-src/tests/python/CMakeLists.txt:10 (message): Recommended test program 'netperf' not found

    CMake Warning at build/_deps/bcc-src/tests/python/CMakeLists.txt:16 (message): Recommended test program 'iperf' or 'iperf3' not found

    -- Configuring done -- Generating done -- Build files have been written to: /root/Procmon-for-Linux/build root@ubuntu:~/Procmon-for-Linux/build# make [ 0%] Building CXX object src/logging/CMakeFiles/logging-static.dir/easylogging++.cc.o [ 3%] Linking CXX static library liblogging-static.a [ 3%] Built target logging-static [ 3%] Building C object CMakeFiles/sqlite3-static.dir/vendor/sqlite3/sqlite3.c.o [ 6%] Linking C static library libsqlite3-static.a [ 6%] Built target sqlite3-static [ 6%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bpf-static.dir/libbpf.c.o [ 6%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bpf-static.dir/perf_reader.c.o [ 10%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bpf-static.dir/libbpf/src/bpf.c.o [ 10%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bpf-static.dir/libbpf/src/bpf_prog_linfo.c.o [ 10%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bpf-static.dir/libbpf/src/btf.c.o [ 13%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bpf-static.dir/libbpf/src/btf_dump.c.o [ 13%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bpf-static.dir/libbpf/src/hashmap.c.o [ 13%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bpf-static.dir/libbpf/src/libbpf.c.o [ 17%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bpf-static.dir/libbpf/src/libbpf_errno.c.o [ 17%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bpf-static.dir/libbpf/src/libbpf_probes.c.o [ 17%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bpf-static.dir/libbpf/src/netlink.c.o [ 20%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bpf-static.dir/libbpf/src/nlattr.c.o [ 20%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bpf-static.dir/libbpf/src/ringbuf.c.o [ 20%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bpf-static.dir/libbpf/src/str_error.c.o [ 24%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bpf-static.dir/libbpf/src/xsk.c.o [ 24%] Linking C static library libbcc_bpf.a [ 24%] Built target bpf-static [ 27%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-loader-static.dir/bcc_syms.cc.o [ 27%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bcc-loader-static.dir/bcc_elf.c.o [ 27%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bcc-loader-static.dir/bcc_perf_map.c.o [ 31%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bcc-loader-static.dir/bcc_proc.c.o [ 31%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-loader-static.dir/common.cc.o [ 31%] Linking CXX static library libbcc-loader-static.a [ 31%] Built target bcc-loader-static [ 31%] Building CXX object _deps/bcc-build/src/cc/frontends/clang/CMakeFiles/clang_frontend.dir/loader.cc.o In file included from /usr/lib/llvm-6.0/include/clang/AST/RecursiveASTVisitor.h:24:0, from /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/frontends/clang/b_frontend_action.h:23, from /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/frontends/clang/loader.cc:57: /usr/lib/llvm-6.0/include/clang/AST/DeclOpenMP.h:97:1: warning: multi-line comment [-Wcomment] /// #pragma omp declare reduction (foo : int,float : omp_out += omp_in)
    ^ [ 31%] Building CXX object _deps/bcc-build/src/cc/frontends/clang/CMakeFiles/clang_frontend.dir/b_frontend_action.cc.o In file included from /usr/lib/llvm-6.0/include/clang/AST/RecursiveASTVisitor.h:24:0, from /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/frontends/clang/b_frontend_action.h:23, from /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/frontends/clang/b_frontend_action.cc:31: /usr/lib/llvm-6.0/include/clang/AST/DeclOpenMP.h:97:1: warning: multi-line comment [-Wcomment] /// #pragma omp declare reduction (foo : int,float : omp_out += omp_in)
    ^ [ 34%] Building CXX object _deps/bcc-build/src/cc/frontends/clang/CMakeFiles/clang_frontend.dir/tp_frontend_action.cc.o In file included from /usr/lib/llvm-6.0/include/clang/AST/RecursiveASTVisitor.h:24:0, from /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/frontends/clang/tp_frontend_action.h:23, from /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/frontends/clang/tp_frontend_action.cc:32: /usr/lib/llvm-6.0/include/clang/AST/DeclOpenMP.h:97:1: warning: multi-line comment [-Wcomment] /// #pragma omp declare reduction (foo : int,float : omp_out += omp_in)
    ^ [ 34%] Building CXX object _deps/bcc-build/src/cc/frontends/clang/CMakeFiles/clang_frontend.dir/kbuild_helper.cc.o /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/frontends/clang/kbuild_helper.cc:80:3: warning: multi-line comment -Wcomment] // USERINCLUDE :=
    ^ /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/frontends/clang/kbuild_helper.cc:89:3: warning: multi-line comment -Wcomment] // LINUXINCLUDE :=
    ^ [ 34%] Building CXX object _deps/bcc-build/src/cc/frontends/clang/CMakeFiles/clang_frontend.dir///common.cc.o [ 34%] Linking CXX static library libclang_frontend.a [ 34%] Built target clang_frontend [ 34%] Building CXX object _deps/bcc-build/src/cc/api/CMakeFiles/api-static.dir/BPF.cc.o In file included from /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/api/BPF.cc:32:0: /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/bcc_exception.h: In member function ‘ebpf::StatusTuple ebpf::BPF::detach_raw_tracepoint_event(const string&, ebpf::open_probe_t&)’: /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/bcc_exception.h:24:7: warning: ‘_stp.ebpf::StatusTuple::code’ may be used uninitialized in this function [-Wmaybe-uninitialized] class StatusTuple { ^~~~~~~~~~~ [ 37%] Building CXX object _deps/bcc-build/src/cc/api/CMakeFiles/api-static.dir/BPFTable.cc.o [ 37%] Linking CXX static library libapi-static.a [ 37%] Built target api-static [ 37%] Building CXX object _deps/bcc-build/src/cc/usdt/CMakeFiles/usdt-static.dir/usdt_args.cc.o [ 41%] Building CXX object _deps/bcc-build/src/cc/usdt/CMakeFiles/usdt-static.dir/usdt.cc.o [ 41%] Linking CXX static library libusdt-static.a [ 41%] Built target usdt-static [ 41%] [BISON][Parser] Building parser with bison 3.0.4 parser.yy:19.9-17: warning: deprecated directive, use ‘%define api.namespace ebpf::cc’ [-Wdeprecated] %define namespace "ebpf::cc" ^^^^^^^^^ parser.yy:19.9-17: warning: %define variable 'api.namespace' requires '{...}' values [-Wdeprecated] %define namespace "ebpf::cc" ^^^^^^^^^ parser.yy:20.9-25: warning: %define variable 'parser_class_name' requires '{...}' values [-Wdeprecated] %define parser_class_name "BisonParser" ^^^^^^^^^^^^^^^^^ [ 44%] [FLEX][Lexer] Building scanner with flex 2.6.4 lexer.ll:110: warning, -s option given but default rule can be matched [ 44%] Building CXX object _deps/bcc-build/src/cc/frontends/b/CMakeFiles/b_frontend.dir/loader.cc.o [ 44%] Building CXX object _deps/bcc-build/src/cc/frontends/b/CMakeFiles/b_frontend.dir/codegen_llvm.cc.o [ 48%] Building CXX object _deps/bcc-build/src/cc/frontends/b/CMakeFiles/b_frontend.dir/node.cc.o [ 48%] Building CXX object _deps/bcc-build/src/cc/frontends/b/CMakeFiles/b_frontend.dir/parser.cc.o [ 48%] Building CXX object _deps/bcc-build/src/cc/frontends/b/CMakeFiles/b_frontend.dir/printer.cc.o [ 48%] Building CXX object _deps/bcc-build/src/cc/frontends/b/CMakeFiles/b_frontend.dir/type_check.cc.o [ 51%] Building CXX object _deps/bcc-build/src/cc/frontends/b/CMakeFiles/b_frontend.dir/parser.yy.cc.o [ 51%] Building CXX object _deps/bcc-build/src/cc/frontends/b/CMakeFiles/b_frontend.dir/lexer.ll.cc.o [ 51%] Linking CXX static library libb_frontend.a [ 51%] Built target b_frontend [ 51%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/bcc_common.cc.o [ 51%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/bpf_module.cc.o In file included from /usr/lib/llvm-6.0/include/clang/AST/RecursiveASTVisitor.h:24:0, from /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/frontends/clang/b_frontend_action.h:23, from /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/bpf_module.cc:43: /usr/lib/llvm-6.0/include/clang/AST/DeclOpenMP.h:97:1: warning: multi-line comment [-Wcomment] /// #pragma omp declare reduction (foo : int,float : omp_out += omp_in)
    ^ [ 55%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/bcc_btf.cc.o /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/bcc_btf.cc: In member function ‘int ebpf::BTF::get_btf_info(const char*, void**, unsigned int*, unsigned int*, void**, unsigned int*, unsigned int*)’: /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/bcc_btf.cc:316:33: warning: ‘int btf_ext__reloc_func_info(const btf*, const btf_ext*, const char*, __u32, void**, __u32*)’ is deprecated: btf_ext__reloc_func_info was never meant as a public API and has wrong assumptions embedded in it; it will be removed in the future libbpf versions [-Wdeprecated-declarations] func_info, func_info_cnt); ^ In file included from /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/bcc_libbpf_inc.h:9:0, from /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/bcc_btf.cc:22: /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/libbpf/src/btf.h:80:5: note: declared here int btf_ext__reloc_func_info(const struct btf btf, ^~~~~~~~~~~~~~~~~~~~~~~~ /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/bcc_btf.cc:323:33: warning: ‘int btf_ext__reloc_line_info(const btf, const btf_ext*, const char*, __u32, void**, __u32*)’ is deprecated: btf_ext__reloc_line_info was never meant as a public API and has wrong assumptions embedded in it; it will be removed in the future libbpf versions [-Wdeprecated-declarations] line_info, line_info_cnt); ^ In file included from /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/bcc_libbpf_inc.h:9:0, from /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/bcc_btf.cc:22: /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/libbpf/src/btf.h:85:5: note: declared here int btf_ext__reloc_line_info(const struct btf *btf, ^~~~~~~~~~~~~~~~~~~~~~~~ [ 55%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/exported_files.cc.o [ 55%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/bcc_debug.cc.o [ 58%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/bpf_module_rw_engine.cc.o [ 58%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/table_storage.cc.o [ 58%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/shared_table.cc.o [ 62%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/bpffs_table.cc.o [ 62%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/json_map_decl_visitor.cc.o In file included from /usr/lib/llvm-6.0/include/clang/AST/RecursiveASTVisitor.h:24:0, from /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/json_map_decl_visitor.cc:22: /usr/lib/llvm-6.0/include/clang/AST/DeclOpenMP.h:97:1: warning: multi-line comment [-Wcomment] /// #pragma omp declare reduction (foo : int,float : omp_out += omp_in)
    ^ [ 62%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/common.cc.o [ 65%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/usdt/usdt.cc.o [ 65%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/usdt/usdt_args.cc.o [ 65%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/bcc_syms.cc.o [ 65%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/bcc_elf.c.o [ 68%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/bcc_perf_map.c.o [ 68%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/bcc_proc.c.o [ 68%] Linking CXX static library libbcc.a [ 68%] Built target bcc-static [ 72%] Building CXX object src/common/CMakeFiles/common-static.dir/printable.cpp.o [ 72%] Building CXX object src/common/CMakeFiles/common-static.dir/cli_utils.cpp.o [ 72%] Linking CXX static library libcommon-static.a [ 72%] Built target common-static [ 75%] Building CXX object src/configuration/CMakeFiles/configuration-static.dir/procmon_configuration.cpp.o In file included from /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/api/BPF.h:25:0, from /root/Procmon-for-Linux/src/configuration/../tracer/ebpf/ebpf_tracer_engine.h:6, from /root/Procmon-for-Linux/src/configuration/procmon_configuration.h:21, from /root/Procmon-for-Linux/src/configuration/procmon_configuration.cpp:4: /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h: In constructor ‘ebpf::BPFQueueStackTable::BPFQueueStackTable(const ebpf::TableDesc&)’: /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h:169:22: error: ‘BPF_MAP_TYPE_QUEUE’ was not declared in this scope if (desc.type != BPF_MAP_TYPE_QUEUE && ^~~~~~~~~~~~~~~~~~ /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h:169:22: note: suggested alternative: ‘BPF_MAP_TYPE_CPUMAP’ if (desc.type != BPF_MAP_TYPE_QUEUE && ^~~~~~~~~~~~~~~~~~ BPF_MAP_TYPE_CPUMAP /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h:170:22: error: ‘BPF_MAP_TYPE_STACK’ was not declared in this scope desc.type != BPF_MAP_TYPE_STACK) ^~~~~~~~~~~~~~~~~~ /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h:170:22: note: suggested alternative: ‘BPF_MAP_TYPE_HASH’ desc.type != BPF_MAP_TYPE_STACK) ^~~~~~~~~~~~~~~~~~ BPF_MAP_TYPE_HASH /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h: At global scope: /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h:392:54: error: field ‘trace’ has incomplete type ‘bpf_stack_build_id [127]’ struct bpf_stack_build_id trace[BPF_MAX_STACK_DEPTH]; ^ In file included from /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h:30:0, from /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/api/BPF.h:25, from /root/Procmon-for-Linux/src/configuration/../tracer/ebpf/ebpf_tracer_engine.h:6, from /root/Procmon-for-Linux/src/configuration/procmon_configuration.h:21, from /root/Procmon-for-Linux/src/configuration/procmon_configuration.cpp:4: /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/bcc_syms.h:81:38: note: forward declaration of ‘struct bpf_stack_build_id’ struct bpf_stack_build_id *trace, ^~~~~~~~~~~~~~~~~~ In file included from /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/api/BPF.h:25:0, from /root/Procmon-for-Linux/src/configuration/../tracer/ebpf/ebpf_tracer_engine.h:6, from /root/Procmon-for-Linux/src/configuration/procmon_configuration.h:21, from /root/Procmon-for-Linux/src/configuration/procmon_configuration.cpp:4: /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h: In constructor ‘ebpf::BPFSkStorageTable::BPFSkStorageTable(const ebpf::TableDesc&)’: /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h:509:22: error: ‘BPF_MAP_TYPE_SK_STORAGE’ was not declared in this scope if (desc.type != BPF_MAP_TYPE_SK_STORAGE) ^~~~~~~~~~~~~~~~~~~~~~~ /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h:509:22: note: suggested alternative: ‘BPF_MAP_TYPE_STACK_TRACE’ if (desc.type != BPF_MAP_TYPE_SK_STORAGE) ^~~~~~~~~~~~~~~~~~~~~~~ BPF_MAP_TYPE_STACK_TRACE /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h: In constructor ‘ebpf::BPFCgStorageTable::BPFCgStorageTable(const ebpf::TableDesc&)’: /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h:538:22: error: ‘BPF_MAP_TYPE_CGROUP_STORAGE’ was not declared in this scope if (desc.type != BPF_MAP_TYPE_CGROUP_STORAGE) ^~~~~~~~~~~~~~~~~~~~~~~~~~~ /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h:538:22: note: suggested alternative: ‘BPF_MAP_TYPE_CGROUP_ARRAY’ if (desc.type != BPF_MAP_TYPE_CGROUP_STORAGE) ^~~~~~~~~~~~~~~~~~~~~~~~~~~ BPF_MAP_TYPE_CGROUP_ARRAY /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h: In constructor ‘ebpf::BPFPercpuCgStorageTable::BPFPercpuCgStorageTable(const ebpf::TableDesc&)’: /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h:564:22: error: ‘BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE’ was not declared in this scope if (desc.type != BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /root/Procmon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h:564:22: note: suggested alternative: ‘BPF_MAP_TYPE_PERCPU_ARRAY’ if (desc.type != BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BPF_MAP_TYPE_PERCPU_ARRAY src/configuration/CMakeFiles/configuration-static.dir/build.make:75: recipe for target 'src/configuration/CMakeFiles/configuration-static.dir/procmon_configuration.cpp.o' failed make[2]: *** [src/configuration/CMakeFiles/configuration-static.dir/procmon_configuration.cpp.o] Error 1 CMakeFiles/Makefile2:2539: recipe for target 'src/configuration/CMakeFiles/configuration-static.dir/all' failed make[1]: *** [src/configuration/CMakeFiles/configuration-static.dir/all] Error 2 Makefile:165: recipe for target 'all' failed make: *** [all] Error 2 `

    root@ubuntu:~/Procmon-for-Linux/build# cat /etc/os-release NAME="Ubuntu" VERSION="18.04.5 LTS (Bionic Beaver)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 18.04.5 LTS" VERSION_ID="18.04" HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" VERSION_CODENAME=bionic UBUNTU_CODENAME=bionic

    ProcMon Version: git clone https://github.com/Microsoft/Procmon-for-Linux

  • Add support for Ubuntu 20.04

    Add support for Ubuntu 20.04

    See title. Manually setting up the repo and trying to install on 20.04 results in:

    # apt install procmon
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    E: Unable to locate package procmon
    
  • make  error

    make error

    
    In [50]: !ls
    CMakeCache.txt  cmake_install.cmake  CPackSourceConfig.cmake  _deps     src
    CMakeFiles      CPackConfig.cmake    CTestTestfile.cmake      Makefile
    
    In [51]: !make
    [  0%] Building C object CMakeFiles/sqlite3-static.dir/vendor/sqlite3/sqlite3.c.o
    [  3%] Linking C static library libsqlite3-static.a
    [  3%] Built target sqlite3-static
    [  3%] Building CXX object src/logging/CMakeFiles/logging-static.dir/easylogging++.cc.o
    [  6%] Linking CXX static library liblogging-static.a
    [  6%] Built target logging-static
    [  6%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bpf-static.dir/libbpf.c.o
    [  6%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bpf-static.dir/perf_reader.c.o
    [ 10%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bpf-static.dir/libbpf/src/bpf.c.o
    [ 10%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bpf-static.dir/libbpf/src/bpf_prog_linfo.c.o
    [ 10%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bpf-static.dir/libbpf/src/btf.c.o
    [ 13%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bpf-static.dir/libbpf/src/btf_dump.c.o
    [ 13%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bpf-static.dir/libbpf/src/hashmap.c.o
    [ 13%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bpf-static.dir/libbpf/src/libbpf.c.o
    [ 17%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bpf-static.dir/libbpf/src/libbpf_errno.c.o
    [ 17%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bpf-static.dir/libbpf/src/libbpf_probes.c.o
    [ 17%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bpf-static.dir/libbpf/src/netlink.c.o
    [ 20%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bpf-static.dir/libbpf/src/nlattr.c.o
    [ 20%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bpf-static.dir/libbpf/src/ringbuf.c.o
    [ 20%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bpf-static.dir/libbpf/src/str_error.c.o
    [ 24%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bpf-static.dir/libbpf/src/xsk.c.o
    [ 24%] Linking C static library libbcc_bpf.a
    [ 24%] Built target bpf-static
    [ 27%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-loader-static.dir/bcc_syms.cc.o
    [ 27%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bcc-loader-static.dir/bcc_elf.c.o
    [ 27%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bcc-loader-static.dir/bcc_perf_map.c.o
    [ 31%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bcc-loader-static.dir/bcc_proc.c.o
    [ 31%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-loader-static.dir/common.cc.o
    [ 31%] Linking CXX static library libbcc-loader-static.a
    [ 31%] Built target bcc-loader-static
    [ 31%] Building CXX object _deps/bcc-build/src/cc/frontends/clang/CMakeFiles/clang_frontend.dir/loader.cc.o
    In file included from /usr/lib/llvm-6.0/include/clang/AST/RecursiveASTVisitor.h:24:0,
                     from /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/frontends/clang/b_frontend_action.h:23,
                     from /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/frontends/clang/loader.cc:57:
    /usr/lib/llvm-6.0/include/clang/AST/DeclOpenMP.h:97:1: warning: multi-line comment [-Wcomment]
     /// #pragma omp declare reduction (foo : int,float : omp_out += omp_in) \
     ^
    [ 31%] Building CXX object _deps/bcc-build/src/cc/frontends/clang/CMakeFiles/clang_frontend.dir/b_frontend_action.cc.o
    In file included from /usr/lib/llvm-6.0/include/clang/AST/RecursiveASTVisitor.h:24:0,
                     from /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/frontends/clang/b_frontend_action.h:23,
                     from /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/frontends/clang/b_frontend_action.cc:31:
    /usr/lib/llvm-6.0/include/clang/AST/DeclOpenMP.h:97:1: warning: multi-line comment [-Wcomment]
     /// #pragma omp declare reduction (foo : int,float : omp_out += omp_in) \
     ^
    [ 34%] Building CXX object _deps/bcc-build/src/cc/frontends/clang/CMakeFiles/clang_frontend.dir/tp_frontend_action.cc.o
    In file included from /usr/lib/llvm-6.0/include/clang/AST/RecursiveASTVisitor.h:24:0,
                     from /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/frontends/clang/tp_frontend_action.h:23,
                     from /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/frontends/clang/tp_frontend_action.cc:32:
    /usr/lib/llvm-6.0/include/clang/AST/DeclOpenMP.h:97:1: warning: multi-line comment [-Wcomment]
     /// #pragma omp declare reduction (foo : int,float : omp_out += omp_in) \
     ^
    [ 34%] Building CXX object _deps/bcc-build/src/cc/frontends/clang/CMakeFiles/clang_frontend.dir/kbuild_helper.cc.o
    /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/frontends/clang/kbuild_helper.cc:80:3: warning: multi-line comment [-Wc
    omment]
       // USERINCLUDE    := \
       ^
    /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/frontends/clang/kbuild_helper.cc:89:3: warning: multi-line comment [-Wc
    omment]
       // LINUXINCLUDE    := \
       ^
    [ 34%] Building CXX object _deps/bcc-build/src/cc/frontends/clang/CMakeFiles/clang_frontend.dir/__/__/common.cc.o
    [ 34%] Linking CXX static library libclang_frontend.a
    [ 34%] Built target clang_frontend
    [ 34%] Building CXX object _deps/bcc-build/src/cc/api/CMakeFiles/api-static.dir/BPF.cc.o
    In file included from /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/api/BPF.cc:32:0:
    /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/bcc_exception.h: In member function ‘ebpf::StatusTuple ebpf::BPF::detac
    h_raw_tracepoint_event(const string&, ebpf::open_probe_t&)’:
    /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/bcc_exception.h:24:7: warning: ‘__stp.ebpf::StatusTuple::code_’ may be
    used uninitialized in this function [-Wmaybe-uninitialized]
     class StatusTuple {
           ^~~~~~~~~~~
    [ 37%] Building CXX object _deps/bcc-build/src/cc/api/CMakeFiles/api-static.dir/BPFTable.cc.o
    [ 37%] Linking CXX static library libapi-static.a
    [ 37%] Built target api-static
    [ 37%] Building CXX object _deps/bcc-build/src/cc/usdt/CMakeFiles/usdt-static.dir/usdt_args.cc.o
    [ 41%] Building CXX object _deps/bcc-build/src/cc/usdt/CMakeFiles/usdt-static.dir/usdt.cc.o
    [ 41%] Linking CXX static library libusdt-static.a
    [ 41%] Built target usdt-static
    [ 41%] [BISON][Parser] Building parser with bison 3.0.4
    parser.yy:19.9-17: warning: deprecated directive, use ‘%define api.namespace ebpf::cc’ [-Wdeprecated]
     %define namespace "ebpf::cc"
             ^^^^^^^^^
    parser.yy:19.9-17: warning: %define variable 'api.namespace' requires '{...}' values [-Wdeprecated]
     %define namespace "ebpf::cc"
             ^^^^^^^^^
    parser.yy:20.9-25: warning: %define variable 'parser_class_name' requires '{...}' values [-Wdeprecated]
     %define parser_class_name "BisonParser"
             ^^^^^^^^^^^^^^^^^
    [ 44%] [FLEX][Lexer] Building scanner with flex 2.6.4
    lexer.ll:110: warning, -s option given but default rule can be matched
    [ 44%] Building CXX object _deps/bcc-build/src/cc/frontends/b/CMakeFiles/b_frontend.dir/loader.cc.o
    [ 44%] Building CXX object _deps/bcc-build/src/cc/frontends/b/CMakeFiles/b_frontend.dir/codegen_llvm.cc.o
    [ 48%] Building CXX object _deps/bcc-build/src/cc/frontends/b/CMakeFiles/b_frontend.dir/node.cc.o
    [ 48%] Building CXX object _deps/bcc-build/src/cc/frontends/b/CMakeFiles/b_frontend.dir/parser.cc.o
    [ 48%] Building CXX object _deps/bcc-build/src/cc/frontends/b/CMakeFiles/b_frontend.dir/printer.cc.o
    [ 48%] Building CXX object _deps/bcc-build/src/cc/frontends/b/CMakeFiles/b_frontend.dir/type_check.cc.o
    [ 51%] Building CXX object _deps/bcc-build/src/cc/frontends/b/CMakeFiles/b_frontend.dir/parser.yy.cc.o
    [ 51%] Building CXX object _deps/bcc-build/src/cc/frontends/b/CMakeFiles/b_frontend.dir/lexer.ll.cc.o
    [ 51%] Linking CXX static library libb_frontend.a
    [ 51%] Built target b_frontend
    [ 51%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/bcc_common.cc.o
    [ 51%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/bpf_module.cc.o
    In file included from /usr/lib/llvm-6.0/include/clang/AST/RecursiveASTVisitor.h:24:0,
                     from /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/frontends/clang/b_frontend_action.h:23,
                     from /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/bpf_module.cc:43:
    /usr/lib/llvm-6.0/include/clang/AST/DeclOpenMP.h:97:1: warning: multi-line comment [-Wcomment]
     /// #pragma omp declare reduction (foo : int,float : omp_out += omp_in) \
     ^
    [ 55%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/bcc_btf.cc.o
    /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/bcc_btf.cc: In member function ‘int ebpf::BTF::get_btf_info(const char*
    , void**, unsigned int*, unsigned int*, void**, unsigned int*, unsigned int*)’:
    /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/bcc_btf.cc:316:33: warning: ‘int btf_ext__reloc_func_info(const btf*, c
    onst btf_ext*, const char*, __u32, void**, __u32*)’ is deprecated: btf_ext__reloc_func_info was never meant as a public API and has w
    rong assumptions embedded in it; it will be removed in the future libbpf versions [-Wdeprecated-declarations]
             func_info, func_info_cnt);
                                     ^
    In file included from /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/bcc_libbpf_inc.h:9:0,
                     from /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/bcc_btf.cc:22:
    /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/libbpf/src/btf.h:80:5: note: declared here
     int btf_ext__reloc_func_info(const struct btf *btf,
         ^~~~~~~~~~~~~~~~~~~~~~~~
    /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/bcc_btf.cc:323:33: warning: ‘int btf_ext__reloc_line_info(const btf*, c
    onst btf_ext*, const char*, __u32, void**, __u32*)’ is deprecated: btf_ext__reloc_line_info was never meant as a public API and has w
    rong assumptions embedded in it; it will be removed in the future libbpf versions [-Wdeprecated-declarations]
             line_info, line_info_cnt);
                                     ^
    In file included from /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/bcc_libbpf_inc.h:9:0,
                     from /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/bcc_btf.cc:22:
    /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/libbpf/src/btf.h:85:5: note: declared here
     int btf_ext__reloc_line_info(const struct btf *btf,
         ^~~~~~~~~~~~~~~~~~~~~~~~
    [ 55%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/exported_files.cc.o
    [ 55%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/bcc_debug.cc.o
    [ 58%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/bpf_module_rw_engine.cc.o
    [ 58%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/table_storage.cc.o
    [ 58%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/shared_table.cc.o
    [ 62%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/bpffs_table.cc.o
    [ 62%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/json_map_decl_visitor.cc.o
    In file included from /usr/lib/llvm-6.0/include/clang/AST/RecursiveASTVisitor.h:24:0,
                     from /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/json_map_decl_visitor.cc:22:
    /usr/lib/llvm-6.0/include/clang/AST/DeclOpenMP.h:97:1: warning: multi-line comment [-Wcomment]
     /// #pragma omp declare reduction (foo : int,float : omp_out += omp_in) \
     ^
    [ 62%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/common.cc.o
    [ 65%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/usdt/usdt.cc.o
    [ 65%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/usdt/usdt_args.cc.o
    [ 65%] Building CXX object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/bcc_syms.cc.o
    [ 65%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/bcc_elf.c.o
    [ 68%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/bcc_perf_map.c.o
    [ 68%] Building C object _deps/bcc-build/src/cc/CMakeFiles/bcc-static.dir/bcc_proc.c.o
    [ 68%] Linking CXX static library libbcc.a
    [ 68%] Built target bcc-static
    [ 72%] Building CXX object src/common/CMakeFiles/common-static.dir/printable.cpp.o
    [ 72%] Building CXX object src/common/CMakeFiles/common-static.dir/cli_utils.cpp.o
    [ 72%] Linking CXX static library libcommon-static.a
    [ 72%] Built target common-static
    [ 75%] Building CXX object src/configuration/CMakeFiles/configuration-static.dir/procmon_configuration.cpp.o
    In file included from /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/api/BPF.h:25:0,
                     from /home/qgb/github/ProcMon-for-Linux/src/configuration/../tracer/ebpf/ebpf_tracer_engine.h:6,
                     from /home/qgb/github/ProcMon-for-Linux/src/configuration/procmon_configuration.h:21,
                     from /home/qgb/github/ProcMon-for-Linux/src/configuration/procmon_configuration.cpp:4:
    /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h: In constructor ‘ebpf::BPFQueueStackTable<ValueType>::BP
    FQueueStackTable(const ebpf::TableDesc&)’:
    /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h:169:22: error: ‘BPF_MAP_TYPE_QUEUE’ was not declared in
    this scope
         if (desc.type != BPF_MAP_TYPE_QUEUE &&
                          ^~~~~~~~~~~~~~~~~~
    /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h:169:22: note: suggested alternative: ‘BPF_MAP_TYPE_CPUMA
    P’
         if (desc.type != BPF_MAP_TYPE_QUEUE &&
                          ^~~~~~~~~~~~~~~~~~
                          BPF_MAP_TYPE_CPUMAP
    /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h:170:22: error: ‘BPF_MAP_TYPE_STACK’ was not declared in
    this scope
             desc.type != BPF_MAP_TYPE_STACK)
                          ^~~~~~~~~~~~~~~~~~
    /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h:170:22: note: suggested alternative: ‘BPF_MAP_TYPE_HASH’
             desc.type != BPF_MAP_TYPE_STACK)
                          ^~~~~~~~~~~~~~~~~~
                          BPF_MAP_TYPE_HASH
    /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h: At global scope:
    /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h:392:54: error: field ‘trace’ has incomplete type ‘bpf_st
    ack_build_id [127]’
       struct bpf_stack_build_id trace[BPF_MAX_STACK_DEPTH];
                                                          ^
    In file included from /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h:30:0,
                     from /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/api/BPF.h:25,
                     from /home/qgb/github/ProcMon-for-Linux/src/configuration/../tracer/ebpf/ebpf_tracer_engine.h:6,
                     from /home/qgb/github/ProcMon-for-Linux/src/configuration/procmon_configuration.h:21,
                     from /home/qgb/github/ProcMon-for-Linux/src/configuration/procmon_configuration.cpp:4:
    /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/bcc_syms.h:81:38: note: forward declaration of ‘struct bpf_stack_build_
    id’
                                   struct bpf_stack_build_id *trace,
                                          ^~~~~~~~~~~~~~~~~~
    In file included from /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/api/BPF.h:25:0,
                     from /home/qgb/github/ProcMon-for-Linux/src/configuration/../tracer/ebpf/ebpf_tracer_engine.h:6,
                     from /home/qgb/github/ProcMon-for-Linux/src/configuration/procmon_configuration.h:21,
                     from /home/qgb/github/ProcMon-for-Linux/src/configuration/procmon_configuration.cpp:4:
    /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h: In constructor ‘ebpf::BPFSkStorageTable<ValueType>::BPF
    SkStorageTable(const ebpf::TableDesc&)’:
    /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h:509:22: error: ‘BPF_MAP_TYPE_SK_STORAGE’ was not declare
    d in this scope
         if (desc.type != BPF_MAP_TYPE_SK_STORAGE)
                          ^~~~~~~~~~~~~~~~~~~~~~~
    /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h:509:22: note: suggested alternative: ‘BPF_MAP_TYPE_STACK
    _TRACE’
         if (desc.type != BPF_MAP_TYPE_SK_STORAGE)
                          ^~~~~~~~~~~~~~~~~~~~~~~
                          BPF_MAP_TYPE_STACK_TRACE
    /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h: In constructor ‘ebpf::BPFCgStorageTable<ValueType>::BPF
    CgStorageTable(const ebpf::TableDesc&)’:
    /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h:538:22: error: ‘BPF_MAP_TYPE_CGROUP_STORAGE’ was not dec
    lared in this scope
         if (desc.type != BPF_MAP_TYPE_CGROUP_STORAGE)
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h:538:22: note: suggested alternative: ‘BPF_MAP_TYPE_CGROU
    P_ARRAY’
         if (desc.type != BPF_MAP_TYPE_CGROUP_STORAGE)
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~
                          BPF_MAP_TYPE_CGROUP_ARRAY
    /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h: In constructor ‘ebpf::BPFPercpuCgStorageTable<ValueType
    >::BPFPercpuCgStorageTable(const ebpf::TableDesc&)’:
    /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h:564:22: error: ‘BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE’ was
    not declared in this scope
         if (desc.type != BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE)
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/qgb/github/ProcMon-for-Linux/build/_deps/bcc-src/src/cc/api/BPFTable.h:564:22: note: suggested alternative: ‘BPF_MAP_TYPE_PERCP
    U_ARRAY’
         if (desc.type != BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE)
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                          BPF_MAP_TYPE_PERCPU_ARRAY
    src/configuration/CMakeFiles/configuration-static.dir/build.make:75: recipe for target 'src/configuration/CMakeFiles/configuration-st
    atic.dir/procmon_configuration.cpp.o' failed
    make[2]: *** [src/configuration/CMakeFiles/configuration-static.dir/procmon_configuration.cpp.o] Error 1
    CMakeFiles/Makefile2:2539: recipe for target 'src/configuration/CMakeFiles/configuration-static.dir/all' failed
    make[1]: *** [src/configuration/CMakeFiles/configuration-static.dir/all] Error 2
    Makefile:165: recipe for target 'all' failed
    make: *** [all] Error 2
    
  • WSL2 Ubuntu 20.04: Exception is thrown

    WSL2 Ubuntu 20.04: Exception is thrown

    Hi,

    I followed the steps below:

    wget -q https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    

    and then

    sudo apt-get update
    sudo apt-get install procmon
    

    but when I do sudo procmon I get the following runtime error:

    image

    Thank you Dimitrios

  • Build fails with gcc 12

    Build fails with gcc 12

    Using procmon 1.0.1 on openSUSE Tumbleweed, with the following cmake parameters:

    /usr/bin/cmake /home/abuild/rpmbuild/BUILD/ProcMon-for-Linux-1.0.1/. '-GUnix Makefiles' -DCMAKE_INSTALL_PREFIX:PATH=/usr -DINCLUDE_INSTALL_DIR:PATH=/usr/include -DLIB_INSTALL_DIR:PATH=/usr/lib64 -DSYSCONF_INSTALL_DIR:PATH=/etc -DSHARE_INSTALL_PREFIX:PATH=/usr/share -DCMAKE_INSTALL_LIBDIR:PATH=lib64 -DCMAKE_INSTALL_LIBEXECDIR=/usr/libexec -DCMAKE_BUILD_TYPE=RelWithDebInfo '-DCMAKE_C_FLAGS=-O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g -DNDEBUG' '-DCMAKE_CXX_FLAGS=-O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g -DNDEBUG' '-DCMAKE_Fortran_FLAGS=-O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g -DNDEBUG' '-DCMAKE_EXE_LINKER_FLAGS=-flto=auto -Wl,--as-needed -Wl,--no-undefined -Wl,-z,now' '-DCMAKE_MODULE_LINKER_FLAGS=-flto=auto -Wl,--as-needed' '-DCMAKE_SHARED_LINKER_FLAGS=-flto=auto -Wl,--as-needed -Wl,--no-undefined -Wl,-z,now' -DLIB_SUFFIX=64 -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DBUILD_SHARED_LIBS:BOOL=ON -DBUILD_STATIC_LIBS:BOOL=OFF -DCMAKE_COLOR_MAKEFILE:BOOL=OFF -DCMAKE_INSTALL_DO_STRIP:BOOL=OFF -DCMAKE_MODULES_INSTALL_DIR=/usr/lib64/cmake/procmon
    

    and this is where it fails:

    [ 53%] Building CXX object src/tracer/CMakeFiles/tracer-static.dir/ebpf/raw_ebpf_event.cpp.o
    cd /home/abuild/rpmbuild/BUILD/ProcMon-for-Linux-1.0.1/build/src/tracer && /usr/bin/c++  -I/home/abuild/rpmbuild/BUILD/ProcMon-for-Linux-1.0.1/build/src -I/usr/include/bcc/compat -I/usr/include/ncurses -O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g -DNDEBUG -g -fno-omit-frame-pointer -DELPP_THREAD_SAFE -D ELPP_DEFAULT_LOG_FILE='"/var/log/procmon.log"' -O2 -g -DNDEBUG -std=gnu++17 -MD -MT src/tracer/CMakeFiles/tracer-static.dir/ebpf/raw_ebpf_event.cpp.o -MF CMakeFiles/tracer-static.dir/ebpf/raw_ebpf_event.cpp.o.d -o CMakeFiles/tracer-static.dir/ebpf/raw_ebpf_event.cpp.o -c /home/abuild/rpmbuild/BUILD/ProcMon-for-Linux-1.0.1/src/tracer/ebpf/raw_ebpf_event.cpp
    [ 57%] Building CXX object src/tracer/CMakeFiles/tracer-static.dir/ebpf/syscall_schema.cpp.o
    cd /home/abuild/rpmbuild/BUILD/ProcMon-for-Linux-1.0.1/build/src/tracer && /usr/bin/c++  -I/home/abuild/rpmbuild/BUILD/ProcMon-for-Linux-1.0.1/build/src -I/usr/include/bcc/compat -I/usr/include/ncurses -O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g -DNDEBUG -g -fno-omit-frame-pointer -DELPP_THREAD_SAFE -D ELPP_DEFAULT_LOG_FILE='"/var/log/procmon.log"' -O2 -g -DNDEBUG -std=gnu++17 -MD -MT src/tracer/CMakeFiles/tracer-static.dir/ebpf/syscall_schema.cpp.o -MF CMakeFiles/tracer-static.dir/ebpf/syscall_schema.cpp.o.d -o CMakeFiles/tracer-static.dir/ebpf/syscall_schema.cpp.o -c /home/abuild/rpmbuild/BUILD/ProcMon-for-Linux-1.0.1/src/tracer/ebpf/syscall_schema.cpp
    In file included from /home/abuild/rpmbuild/BUILD/ProcMon-for-Linux-1.0.1/src/tracer/ebpf/syscall_schema.cpp:4:
    /home/abuild/rpmbuild/BUILD/ProcMon-for-Linux-1.0.1/src/tracer/ebpf/syscall_schema.h: In static member function 'static std::vector<SyscallSchema::SyscallSchema> SyscallSchema::Utils::CollectSyscallSchema()':
    /home/abuild/rpmbuild/BUILD/ProcMon-for-Linux-1.0.1/src/tracer/ebpf/syscall_schema.h:100:26: error: 'strcpy' is not a member of 'std'
      100 |                     std::strcpy(schema.syscallName, match[2].str().c_str());
          |                          ^~~~~~
    /home/abuild/rpmbuild/BUILD/ProcMon-for-Linux-1.0.1/src/tracer/ebpf/syscall_schema.h:124:34: error: 'strcpy' is not a member of 'std'
      124 |                             std::strcpy(schema.argNames[argCount], argName.c_str());
          |                                  ^~~~~~
    make[2]: *** [src/tracer/CMakeFiles/tracer-static.dir/build.make:121: src/tracer/CMakeFiles/tracer-static.dir/ebpf/syscall_schema.cpp.o] Error 1
    

    No error with gcc 11.

  • Optimize performance and graphics output with latest notcurses

    Optimize performance and graphics output with latest notcurses

    I would love to see this optimized for use with the notcurses library to bring better graphics input/output to terminals. https://github.com/dankamongmen/notcurses/releases Example usage: https://github.com/dankamongmen/colloquy

  • Please document which kernel options are needed for procmon to work

    Please document which kernel options are needed for procmon to work

    I just installed procmon (from the source) and when I do sudo procmon I get:

      what():  filesystem error: directory iterator cannot open directory: No such file or directory [/sys/kernel/debug/tracing/events/syscalls]
    
    

    So it looks like this needs some kernel options to use, it would be good to document that in README.md

    EDIT: After enabling the needed kernel option and running procmon as root I get empty list (just the header and footer) and in the shell I see following errors:

    bpf: Failed to load program: Invalid argument
    fd 9 is not pointing to valid bpf_map
    processed 0 insns (limit 1000000) max_states_per_insn 0 total_states 0 peak_states 0 mark_read 0
    
    bpf: Failed to load program: Invalid argument
    fd 9 is not pointing to valid bpf_map
    processed 0 insns (limit 1000000) max_states_per_insn 0 total_states 0 peak_states 0 mark_read 0
    

    So something is still missing, but what? (I have BPF enabled in kernel, but not sure if all the required options, or maybe I need some CLI tools?)

linenoise-classic is a command-line tool that generates strings of random characters that can be used as reasonably secure passwords.

linenoise-classic is a command-line tool that generates strings of random characters that can be used as reasonably secure passwords.

Aug 21, 2022
Grab is a tool that downloads source code repositories into a convenient directory layout created from the repo's URL's domain and path

Grab is a tool that downloads source code repositories into a convenient directory layout created from the repo's URL's domain and path. It supports Git, Mercurial (hg), Subversion, and Bazaar repositories.

Jun 2, 2022
A terminal based graphical activity monitor inspired by gtop and vtop
A terminal based graphical activity monitor inspired by gtop and vtop

NO LONGER MAINTAINED. A maintained fork of gotop exists at https://github.com/xxxserxxx/gotop. Another terminal based graphical activity monitor, insp

Jan 1, 2023
The simple and easy-to-use program designed to watch user activity for Cloud Providers.

Cloud Agent The simple and easy-to-use program is designed to watch user activity and possible orphan clusters for Cloud Providers: Gardener GCP (work

Jun 6, 2022
Command-line tool to customize the official Spotify client. Supports Windows, MacOS and Linux.
Command-line tool to customize the official Spotify client. Supports Windows, MacOS and Linux.

Command-line tool to customize the official Spotify client. Supports Windows, MacOS and Linux. Features Change colors whole UI Inject CSS for advanced

Jan 2, 2023
Raspberry Pi terminal based activity monitor
Raspberry Pi terminal based activity monitor

pitop Raspberry Pi terminal based activity monitor Yes I know there are plenty of solutions already available, but I wanted to build my own terminal b

Dec 11, 2022
The sntr command-line program gives you convenient access to Sentry directly from your terminal.

sntr: all of Sentry at your fingertips The sntr command-line program gives you convenient access to Sentry directly from your terminal. Disclaimer: th

Jan 31, 2022
Convenient wrappers for reading inputs.

read Convenient wrappers for reading inputs. Examples fmt.Print("input> ") line, err := read.Line() if err != nil { panic(err) } fmt.Println(line) Us

Feb 5, 2022
Jsos - A operating system that runs system-level javascript, based on the Linux kernel

JsOS ?? An linux-based operating system that runs Javascript code at the system-

Jan 6, 2023
gif effects CLI. single binary, no dependencies. linux, osx, windows.
gif effects CLI. single binary, no dependencies. linux, osx, windows.

yeetgif Composable GIF effects CLI, with reasonable defaults. Made for custom Slack/Discord emoji :) Get it Alternative 1: go get Alternative 2: just

Dec 11, 2022
ets2-dlc-repacker is a Windows / Linux / MacOS CLI util to automatically repack older DLC archives for compatibility with newer versions.
ets2-dlc-repacker is a Windows / Linux / MacOS CLI util to automatically repack older DLC archives for compatibility with newer versions.

ets2-dlc-repacker is a Windows / Linux / MacOS CLI util to automatically repack older DLC archives for compatibility with newer versions.

Dec 26, 2021
sg is the CLI tool that Sourcegraph developers can use to develop Sourcegraph.

sg is the CLI tool that Sourcegraph developers can use to develop Sourcegraph.

Dec 14, 2022
Teller - the open-source universal secret manager for developers
 Teller - the open-source universal secret manager for developers

A secrets management tool for developers built in Go - never leave your command line for secrets.

Jan 8, 2023
Robust, flexible and resource-efficient pipelines using Go and the commandline
Robust, flexible and resource-efficient pipelines using Go and the commandline

Robust, flexible and resource-efficient pipelines using Go and the commandline Project links: Documentation & Main Website | Issue Tracker | Chat Why

Dec 25, 2022
Command line tool for adding Windows resources to executable files

go-winres A simple command line tool for embedding usual resources in Windows executables built with Go: A manifest An application icon Version inform

Dec 27, 2022
🚀 goprobe is a promising command line tool for inspecting URLs with modern and user-friendly way.

goprobe Build go build -o ./bin/goprobe Example > goprobe https://github.com/gaitr/goprobe > cat links.txt | goprobe > echo "https://github.com/gaitr/

Oct 24, 2021
Slice and dice your TMUX windows and panes
Slice and dice your TMUX windows and panes

chaakoo Introduction Configuration Using Chaakoo Examples Download License Introduction Chaakoo is a wrapper over TMUX that can create sessions, windo

Nov 1, 2022
A command tool to help user install oh-my-zsh plugins fast in a comfortable way

zshx A command tool to help user install oh-my-zsh plugins fast in a comfortable way. in other way, it is a zsh plugin package manager. How to use the

Feb 11, 2022
Small CLI Tool to store test artifacts in a tamperproof way

Small CLI Tool to store test artifacts in a tamperproof way

Oct 3, 2022