gstack - stack trace of a running process

本文介绍如何利用gstack工具获取运行中进程的堆栈信息。通过简单的命令行操作,即可实现对指定进程PID的堆栈跟踪,适用于调试多线程应用。示例展示了查询newthread进程的具体步骤及输出结果。
  1. NAME  
  2.        gstack - print a stack trace of a running process  
  3.   
  4. SYNOPSIS  
  5.        gstack pid  
  6.   
  7. DESCRIPTION  
  8.        gstack  attaches  to the active process named by the pid on the command  
  9.        line, and prints out an execution stack trace.  If ELF symbols exist in  
  10.        the  binary  (usually the case unless you have run strip(1)), then sym‐  
  11.        bolic addresses are printed as well.  
  12.   
  13.        If the process is part of a thread group, then gstack will print out  a  
  14.        stack trace for each of the threads in the group.  

它的用法很简单,只要在gstack命令后面跟上某个进程pid就可以,例如查询一个newthread进程的运行堆栈信息:

gstack `pgrep newthread | head -1`

[plain]  view plain copy
  1. [yuanping@Linux ~]$ gstack `pgrep newthread | head -1`  
  2. Thread 2 (Thread 0xb77d7b40 (LWP 4165)):  
  3. #0  0x00e13424 in __kernel_vsyscall ()  
  4. #1  0x4ebf79c6 in nanosleep () from /lib/libc.so.6  
  5. #2  0x4ebf77df in sleep () from /lib/libc.so.6  
  6. #3  0x0804853a in thread ()  
  7. #4  0x4ed27cd3 in start_thread () from /lib/libpthread.so.0  
  8. #5  0x4ec324de in clone () from /lib/libc.so.6  
  9. Thread 1 (Thread 0xb77d8900 (LWP 4164)):  
  10. #0  0x00e13424 in __kernel_vsyscall ()  
  11. #1  0x4ed28dd5 in pthread_join () from /lib/libpthread.so.0  
  12. #2  0x080485bd in main ()  
  13. [yuanping@Linux ~]$  
PS D:\face\r\android> yarn example android info A dev server is already running for this project on port 8082. info Installing the app... > Configure project :react-native-nitro-inspire-faceplugin:compileKotlin [NitroModules] ? nitroinspireface is boosted by nitro! > Configure project :react-native-nitro-modules [NitroModules] ? Your app is boosted by nitro modules! [Incubating] Problems report is available at: file:///D:/face/r/example/android/build/reports/problems/problems-report.html Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0. You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. For more on this, please refer to https://docs.gradle.org/8.12/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation. 10 actionable tasks: 10 executed info 💡 Tip: Make sure that you have set up your development environment correctly, by running npx react-native doctor. To read more about doctor command visit: https://github.com/react-native-community/cli/blob/main/packages/cli-doctor/README.md#doctor FAILURE: Build failed with an exception. * Where: Build file 'D:\face\r\example\node_modules\react-native-reanimated\android\build.gradle' line: 53 * What went wrong: A problem occurred evaluating project ':react-native-reanimated'. > Process 'command 'node'' finished with non-zero exit value 1 * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org. BUILD FAILED in 1m 7s error Failed to install the app. Command failed with exit code 1: gradlew.bat app:installDebug -PreactNativeDevServerPort=8082 FAILURE: Build failed with an exception. * Where: Build file 'D:\face\r\example\node_modules\react-native-reanimated\android\build.gradle' line: 53 * What went wrong: A problem occurred evaluating project ':react-native-reanimated'. > Process 'command 'node'' finished with non-zero exit value 1 * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org. BUILD FAILED in 1m 7s.
07-31
D:\AwesomeProject>npx react-native run-android info Running jetifier to migrate libraries to AndroidX. You can disable it using "--no-jetifier" flag. Jetifier found 1985 file(s) to forward-jetify. Using 12 workers... info JS server already running. info Installing the app... Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0. You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. See https://docs.gradle.org/7.4/userguide/command_line_interface.html#sec:command_line_warnings 6 actionable tasks: 6 up-to-date FAILURE: Build failed with an exception. * Where: Build file 'D:\AwesomeProject\node_modules\react-native-os\android\build.gradle' line: 47 * What went wrong: A problem occurred evaluating project ':react-native-os'. > Could not find method compile() for arguments [com.facebook.react:react-native:+] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler. * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 22s error Failed to install the app. Make sure you have the Android development environment set up: https://reactnative.dev/docs/environment-setup. Error: Command failed: gradlew.bat app:installDebug -PreactNativeDevServerPort=8081 FAILURE: Build failed with an exception. * Where: Build file 'D:\AwesomeProject\node_modules\react-native-os\android\build.gradle' line: 47 * What went wrong: A problem occurred evaluating project ':react-native-os'. > Could not find method compile() for arguments [com.facebook.react:react-native:+] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler. * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 22s at makeError (D:\AwesomeProject\node_modules\execa\index.js:174:9) at D:\AwesomeProject\node_modules\execa\index.js:278:16 at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async runOnAllDevices (D:\AwesomeProject\node_modules\@react-native-community\cli-platform-android\build\commands\runAndroid\runOnAllDevices.js:109:5) at async Command.handleAction (D:\AwesomeProject\node_modules\@react-native-community\cli\build\index.js:192:9) info Run CLI with --verbose flag for more details.
最新发布
08-15
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值