mirror of
https://github.com/diamante0018/MonitorRam.git
synced 2025-05-12 15:34:54 +00:00
Compare commits
No commits in common. "1f63f81979f5d316053f4ebf8068c7aebcb4e2fd" and "27f931d11ac6c78e059602aa8a7d73dd80db817e" have entirely different histories.
1f63f81979
...
27f931d11a
@ -1,55 +0,0 @@
|
|||||||
FROM ubuntu:noble
|
|
||||||
|
|
||||||
# Official workaround for "groupadd: GID '1000' already exists"
|
|
||||||
RUN userdel -r ubuntu
|
|
||||||
|
|
||||||
# Set non-interactive mode for apt-get
|
|
||||||
ENV DEBIAN_FRONTEND=noninteractive
|
|
||||||
|
|
||||||
# Install basic dependencies for compilation
|
|
||||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
||||||
build-essential \
|
|
||||||
gcc \
|
|
||||||
gcc-multilib \
|
|
||||||
g++-multilib \
|
|
||||||
make \
|
|
||||||
wget \
|
|
||||||
unzip \
|
|
||||||
git \
|
|
||||||
gdb \
|
|
||||||
libc6-dbg \
|
|
||||||
valgrind \
|
|
||||||
strace \
|
|
||||||
clang-format \
|
|
||||||
python3 python3-pip python3-venv \
|
|
||||||
&& apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
# Create a virtual environment and install colour-valgrind
|
|
||||||
RUN python3 -m venv /opt/venv && \
|
|
||||||
/opt/venv/bin/pip install colour-valgrind
|
|
||||||
|
|
||||||
# Add the virtual environment to PATH for all users
|
|
||||||
ENV PATH="/opt/venv/bin:$PATH"
|
|
||||||
|
|
||||||
# Download and install Premake5
|
|
||||||
RUN wget https://github.com/premake/premake-core/releases/download/v5.0.0-beta5/premake-5.0.0-beta5-linux.tar.gz \
|
|
||||||
&& tar -xvf premake-5.0.0-beta5-linux.tar.gz \
|
|
||||||
&& mv premake5 /usr/local/bin/ \
|
|
||||||
&& chmod +x /usr/local/bin/premake5 \
|
|
||||||
&& rm premake-5.0.0-beta5-linux.tar.gz
|
|
||||||
|
|
||||||
ARG USERNAME=vscode
|
|
||||||
ARG USER_UID=1000
|
|
||||||
ARG USER_GID=$USER_UID
|
|
||||||
|
|
||||||
# Create the user
|
|
||||||
RUN groupadd --gid $USER_GID $USERNAME \
|
|
||||||
&& useradd --uid $USER_UID --gid $USER_GID -m $USERNAME \
|
|
||||||
#
|
|
||||||
# [Optional] Add sudo support. Omit if you don't need to install software after connecting.
|
|
||||||
&& apt-get update \
|
|
||||||
&& apt-get install -y sudo \
|
|
||||||
&& echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \
|
|
||||||
&& chmod 0440 /etc/sudoers.d/$USERNAME
|
|
||||||
|
|
||||||
USER $USERNAME
|
|
@ -1,32 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "MonitorRam Dev Container",
|
|
||||||
"build": {
|
|
||||||
"context": "..",
|
|
||||||
"dockerfile": "./Dockerfile"
|
|
||||||
},
|
|
||||||
"capAdd": [
|
|
||||||
"SYS_PTRACE"
|
|
||||||
],
|
|
||||||
"securityOpt": [
|
|
||||||
"seccomp=unconfined"
|
|
||||||
],
|
|
||||||
"customizations": {
|
|
||||||
"vscode": {
|
|
||||||
"extensions": [
|
|
||||||
"ms-vscode.cpptools-extension-pack"
|
|
||||||
],
|
|
||||||
"settings": {
|
|
||||||
"C_Cpp.clang_format_style": "file",
|
|
||||||
"C_Cpp.formatting": "clangFormat",
|
|
||||||
"editor.formatOnSave": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"runArgs": [
|
|
||||||
"--network=host"
|
|
||||||
],
|
|
||||||
"forwardPorts": [
|
|
||||||
3000
|
|
||||||
],
|
|
||||||
"remoteUser": "vscode"
|
|
||||||
}
|
|
6
.github/workflows/build.yml
vendored
6
.github/workflows/build.yml
vendored
@ -14,7 +14,7 @@ concurrency:
|
|||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
env:
|
env:
|
||||||
PREMAKE_VERSION: "5.0.0-beta5"
|
PREMAKE_VERSION: "5.0.0-beta2"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-linux:
|
build-linux:
|
||||||
@ -47,12 +47,12 @@ jobs:
|
|||||||
sudo apt-get install crossbuild-essential-arm64 -y
|
sudo apt-get install crossbuild-essential-arm64 -y
|
||||||
|
|
||||||
- name: Install Premake5
|
- name: Install Premake5
|
||||||
uses: diamante0018/setup-premake@v0.0.2
|
uses: diamante0018/setup-premake@master
|
||||||
with:
|
with:
|
||||||
version: ${{ env.PREMAKE_VERSION }}
|
version: ${{ env.PREMAKE_VERSION }}
|
||||||
|
|
||||||
- name: Generate project files
|
- name: Generate project files
|
||||||
run: premake5 gmake
|
run: premake5 gmake2
|
||||||
|
|
||||||
- name: Set up problem matching
|
- name: Set up problem matching
|
||||||
uses: ammaraskar/gcc-problem-matcher@master
|
uses: ammaraskar/gcc-problem-matcher@master
|
||||||
|
51
.vscode/launch.json
vendored
51
.vscode/launch.json
vendored
@ -1,51 +0,0 @@
|
|||||||
{
|
|
||||||
"version": "0.2.0",
|
|
||||||
"configurations": [
|
|
||||||
{
|
|
||||||
"name": "GDB Debug (Debug Build)",
|
|
||||||
"type": "cppdbg",
|
|
||||||
"request": "launch",
|
|
||||||
"program": "${workspaceFolder}/build/bin/x64/Debug/MonitorRam",
|
|
||||||
"args": [
|
|
||||||
""
|
|
||||||
], // Arguments to pass to your program
|
|
||||||
"stopAtEntry": false,
|
|
||||||
"cwd": "${workspaceFolder}",
|
|
||||||
"environment": [],
|
|
||||||
"externalConsole": false,
|
|
||||||
"MIMode": "gdb",
|
|
||||||
"miDebuggerPath": "/usr/bin/gdb", // Path to gdb inside the container
|
|
||||||
"setupCommands": [
|
|
||||||
{
|
|
||||||
"description": "Enable pretty-printing for gdb",
|
|
||||||
"text": "-enable-pretty-printing",
|
|
||||||
"ignoreFailures": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"preLaunchTask": "build-debug" // Task to build the Debug version
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "GDB Debug (Release Build)",
|
|
||||||
"type": "cppdbg",
|
|
||||||
"request": "launch",
|
|
||||||
"program": "${workspaceFolder}/build/bin/x64/Release/MonitorRam",
|
|
||||||
"args": [
|
|
||||||
""
|
|
||||||
], // Arguments to pass to your program
|
|
||||||
"stopAtEntry": false,
|
|
||||||
"cwd": "${workspaceFolder}",
|
|
||||||
"environment": [],
|
|
||||||
"externalConsole": false,
|
|
||||||
"MIMode": "gdb",
|
|
||||||
"miDebuggerPath": "/usr/bin/gdb",
|
|
||||||
"setupCommands": [
|
|
||||||
{
|
|
||||||
"description": "Enable pretty-printing for gdb",
|
|
||||||
"text": "-enable-pretty-printing",
|
|
||||||
"ignoreFailures": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"preLaunchTask": "build-release" // Task to build the Release version
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
54
.vscode/tasks.json
vendored
54
.vscode/tasks.json
vendored
@ -1,54 +0,0 @@
|
|||||||
{
|
|
||||||
"version": "2.0.0",
|
|
||||||
"tasks": [
|
|
||||||
{
|
|
||||||
"label": "generate-makefiles",
|
|
||||||
"type": "shell",
|
|
||||||
"command": "premake5",
|
|
||||||
"args": [
|
|
||||||
"gmake"
|
|
||||||
], // Generate Makefiles
|
|
||||||
"group": {
|
|
||||||
"kind": "build",
|
|
||||||
"isDefault": false
|
|
||||||
},
|
|
||||||
"problemMatcher": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "build-debug",
|
|
||||||
"type": "shell",
|
|
||||||
"command": "make",
|
|
||||||
"args": [
|
|
||||||
"-C",
|
|
||||||
"build",
|
|
||||||
"config=debug_x64"
|
|
||||||
],
|
|
||||||
"group": {
|
|
||||||
"kind": "build",
|
|
||||||
"isDefault": true
|
|
||||||
},
|
|
||||||
"problemMatcher": [
|
|
||||||
"$gcc"
|
|
||||||
],
|
|
||||||
"dependsOn": "generate-makefiles"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "build-release",
|
|
||||||
"type": "shell",
|
|
||||||
"command": "make",
|
|
||||||
"args": [
|
|
||||||
"-C",
|
|
||||||
"build",
|
|
||||||
"config=release_x64"
|
|
||||||
],
|
|
||||||
"group": {
|
|
||||||
"kind": "build",
|
|
||||||
"isDefault": false
|
|
||||||
},
|
|
||||||
"problemMatcher": [
|
|
||||||
"$gcc"
|
|
||||||
],
|
|
||||||
"dependsOn": "generate-makefiles"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
2
LICENSE
2
LICENSE
@ -1,6 +1,6 @@
|
|||||||
BSD 3-Clause License
|
BSD 3-Clause License
|
||||||
|
|
||||||
Copyright (c) 2025, diamante0018
|
Copyright (c) 2022, Edoardo Sanguineti
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -38,7 +38,7 @@ end
|
|||||||
filter "configurations:Release"
|
filter "configurations:Release"
|
||||||
optimize "Size"
|
optimize "Size"
|
||||||
defines "NDEBUG"
|
defines "NDEBUG"
|
||||||
fatalwarnings "All"
|
flags "FatalCompileWarnings"
|
||||||
filter {}
|
filter {}
|
||||||
|
|
||||||
filter "configurations:Debug"
|
filter "configurations:Debug"
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
@ -20,12 +19,7 @@ int main(int argc, char* argv[]) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
struct sigaction act;
|
struct sigaction act;
|
||||||
memset(&act, 0, sizeof(act));
|
|
||||||
|
|
||||||
act.sa_handler = sigint_handler;
|
act.sa_handler = sigint_handler;
|
||||||
sigemptyset(&act.sa_mask); // Initialize the signal mask to empty
|
|
||||||
act.sa_flags = 0; // Set flags to 0
|
|
||||||
|
|
||||||
sigaction(SIGINT, &act, NULL);
|
sigaction(SIGINT, &act, NULL);
|
||||||
|
|
||||||
int result = setup(argv[1]);
|
int result = setup(argv[1]);
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
#include <assert.h>
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@ -109,13 +108,6 @@ static int is_process_wild(int curr_real_mem, int peak_real_mem,
|
|||||||
}
|
}
|
||||||
|
|
||||||
int setup(const char* pid) {
|
int setup(const char* pid) {
|
||||||
assert(pid);
|
|
||||||
|
|
||||||
if (*pid == '\0') {
|
|
||||||
printf("Invalid PID\n");
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
memset(&processes, 0, sizeof(processes));
|
memset(&processes, 0, sizeof(processes));
|
||||||
|
|
||||||
char* command = va("pgrep %s", pid);
|
char* command = va("pgrep %s", pid);
|
||||||
@ -155,6 +147,7 @@ int analyse() {
|
|||||||
status = popen(command, "r");
|
status = popen(command, "r");
|
||||||
if (!status) {
|
if (!status) {
|
||||||
perror("popen");
|
perror("popen");
|
||||||
|
pclose(status);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user