From a17aea75b065264738c7d6e740382a028f6e1ec7 Mon Sep 17 00:00:00 2001 From: xlgitee Date: Fri, 18 Jul 2025 10:57:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=BF=9B=E7=A8=8B=E7=94=9F?= =?UTF-8?q?=E5=91=BD=E5=91=A8=E6=9C=9F=E7=BB=9F=E8=AE=A1=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: xlgitee --- tools/process_dump/dfx_process.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tools/process_dump/dfx_process.cpp b/tools/process_dump/dfx_process.cpp index 54f912ab5..674051884 100644 --- a/tools/process_dump/dfx_process.cpp +++ b/tools/process_dump/dfx_process.cpp @@ -198,14 +198,15 @@ bool GetProcessInfo(pid_t tid, unsigned long long &startTime) std::string DfxProcess::GetProcessLifeCycle(pid_t pid) { - struct sysinfo si; - sysinfo(&si); + struct timespec ts; + (void)clock_gettime(CLOCK_BOOTTIME, &ts); + uint64_t sysUpTime = static_cast(ts.tv_sec + static_cast(ts.tv_nsec != 0 ? 1L : 0L)); unsigned long long startTime = 0; if (GetProcessInfo(pid, startTime)) { if (sysconf(_SC_CLK_TCK) == -1) { return ""; } - uint64_t upTime = si.uptime - startTime / static_cast(sysconf(_SC_CLK_TCK)); + uint64_t upTime = sysUpTime - startTime / static_cast(sysconf(_SC_CLK_TCK)); return std::to_string(upTime) + "s"; } return ""; -- Gitee