
正文
linux拉堆栈命令 linux 堆和栈的区别
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
linux应用中,在一个进程内如何获取本进程内其它线程的堆栈信息、
先用ps看目前存在的所有进程的进程号,然后可以对具体进程采用以下这些操作:(11345就是对应具体的进程号)
只查看该进程:ps -ef | grep 11345
查看该进程打开的文件:lsof -p 11345
查看内存分配:lcat /proc/11345/maps
查看堆栈:pstack 11345
查看发出的系统调用:strace -p 11345
查看调用库函数:ltrace -p 11345
相关问答
Q1: 1 linux下调试core的命令,察看堆栈状态命令
比方说,你要调试的core文件是 core.xxx,原始可执行文件是 a.exe
先用 gdb a.exe 进入 gdb,在gdb命令行下 执行
core-file /path/to/core.xxx
然后即可调试core dump文件了,比如用 bt 等
Q2: Linux中的pushd和popd
其实,很早就知道pushd和popd在linux中可以用来方便地在多个目录之间切换。那时比较浮躁,感觉切换目录没必要这么复杂。在实际中,发现通过使用pushd和popd能够极大地提高效率。
一般,Shell中都可以通过 cd - 命令回到之前的目录,下面是一个例子:
实际上, cd - 中, - 就相当于变量$OLDPWD。 cd - 就相当于 cd $OLDPWD 。下面是一个例子:
pushd和popd是对一个目录栈进行操作,而dirs是显示目录栈的内容。而目录栈就是一个保存目录的栈结构,该栈结构的顶端永远都存放着当前目录(这里点从下面可以进一步看到)。
dirs常用的有两个参数:
下面没有显示地对目录栈进行任何操作,我们来看下当前目录栈的内容是什么:
可以看出,目录栈中只有一个目录(当然是在栈顶),就是当前所在的目录。当切换目录之后,栈中的目录也随之改变。通过 -c 选项可以将目录栈中除当前目录之外的其它目录清除,由于上面的例子中目录栈只包含当前目录,所以没有变化。
每次pushd命令执行完成之后,默认都会执行一个dirs命令来显示目录栈的内容。pushd的用法主要有如下几种:
每次popd命令执行完成之后,默认都会执行一个dirs命令来显示目录栈的内容。popd的用法主要有如下几种:
上面我们用的都是+n作为参数,实际在使用pushd和popd的时候,有时候也会用到-n参数。两者的差别如下:+n的含义是从栈顶往栈底方向进行计数,从0开始;-n的含义刚好相反,从栈底向栈顶方向计数,从0开始。这样有点拗口,实际上,从默认的dirs命令(不带任何参数)的输出来解释最好理解了:+n是指从左往右数,-n是指从右往左数,都是从0开始。
Q3: linux 设置堆栈大小 为无限制
你好。
执行命令ulimit -a,查看栈大小的限制。
通过使用 ulimit -s 数字 进行设置。
关于linux拉堆栈命令和linux 堆和栈的区别的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






