Sponsored Content
Full Discussion: stack region
Top Forums UNIX for Advanced & Expert Users stack region Post 302101014 by Perderabo on Wednesday 27th of December 2006 01:50:27 AM
Old 12-27-2006
Most solutions are going to be very specific to the exact OS involved. Poking around on FC5, I see that Linux has this kind of info available in the /proc filesystem. Excerpt from "man 5 proc":
Code:
/proc/[number]/stat
              Status   information   about   the   process.    This   is   used   by   ps(1).    It   is   defined  in
              /usr/src/linux/fs/proc/array.c.

              The fields, in order, with their proper scanf(3) format specifiers, are:
              startstack %lu
                     The address of the start of the stack.

              kstkesp %lu
                     The current value of esp (stack pointer), as found in the kernel stack page for the process.

So maybe you can look at Tru64 to see if it has anything like that.

Here is a crazy idea that might work on any OS to get a good approximate value. Earlly in main() take the address of an auto variable and store the address for future reference. Later, when you want to check the stack size, allocate a new auto variable and now subtract the addresses and take the absolute value to get an approximate stack size.
 

8 More Discussions You Might Find Interesting

1. Programming

what is stack winding and stack unwinding

helo can u tell me what do you mean by stack winding and stack unwinding Regards, Amit (2 Replies)
Discussion started by: amitpansuria
2 Replies

2. UNIX for Advanced & Expert Users

Best practice - determining what region you are on

Hello all, I have a question about what you think the best practice is to determine what region you are running on when you have a system setup with a DEV/TEST, QA, and PROD regions running the same scripts in all. So, when you run in DEV, you have a different directory structure, and you... (4 Replies)
Discussion started by: Rediranch
4 Replies

3. UNIX for Dummies Questions & Answers

Kernel Stack vs User Mode Stack

Hi, I am new to the linux kernel development area. I want to know what is the difference between kernel mode stack and user mode stack? Does each process has a user mode stack and a kernel mode stack?? Or Each process has a user mode stack and there is only one kernel mode stack that is shared by... (4 Replies)
Discussion started by: saurabhkoar
4 Replies

4. Shell Programming and Scripting

Region between lines

How can I find the regions between specific lines? I have a file which contains lines like this: chr1 0 17388 0 chr1 17388 17444 1 chr1 17444 17599 2 chr1 17599 17601 1 chr1 17601 569791 0 chr1 569791 569795 1 chr1 569795 569808 2 chr1 569808 569890 3 chr1 569890 570047 4 ... (9 Replies)
Discussion started by: linseyr
9 Replies

5. AIX

Change lv REGION in HDISK1

Dears my rootvg is missed up i can not extend the /opt as soon as i try to extend the Filesystem its give me that there is not enough space . as there any way to change the REGION of the LVs in HDISK1 ? lspv -p hdisk0 hdisk0: PP RANGE STATE REGION LV NAME TYPE ... (8 Replies)
Discussion started by: thecobra151
8 Replies

6. Shell Programming and Scripting

Need a command to change the port region

portsuf=25 port=20925 I need to replace 09 with 25 It should be like 22525. Can some please help with command or script. (4 Replies)
Discussion started by: bhas85
4 Replies

7. Programming

Merge two strings by overlapped region

Hello, I am trying to concatenate two strings by merging the overlapped region. E.g. Seq1=ACGTGCCC Seq2=CCCCCGTGTGTGT Seq_merged=ACGTGCCCCCGTGTGTGTFunction strcat(char *dest, char *src) appends the src string to the dest string, ignoring the overlapped parts (prefix of src and suffix of dest).... (30 Replies)
Discussion started by: yifangt
30 Replies

8. UNIX for Dummies Questions & Answers

Mean score value by ID over a defined genomic region

Hi, I would like to know how can I get a mean score value by ID over a defined genomic region. Here it is an example: file1 12 100 103 id1 12 110 112 id1 12 200 203 id2 file2 12 100 101 1 12 101 102 0.8 12 102 103 0.7 12 110 111 2.5 12 111 112 2.8 12 200 201 10.1 12 201 202... (7 Replies)
Discussion started by: fadista
7 Replies
PROC(3) 						     Library Functions Manual							   PROC(3)

NAME
proc - running processes SYNOPSIS
bind #p /proc /proc/n/ctl /proc/n/mem /proc/n/note /proc/n/noteid /proc/n/notepg /proc/n/proc /proc/n/segment /proc/n/status /proc/n/text /proc/n/wait ... DESCRIPTION
The proc device serves a two-level directory structure. The first level contains numbered directories corresponding to pids of live pro- cesses; each such directory contains a set of files representing the corresponding process. The mem file contains the current memory image of the process. A read or write at offset o, which must be a valid virtual address, accesses bytes from address o up to the end of the memory segment containing o. Kernel virtual memory, including the kernel stack for the process and saved user registers (whose addresses are machine-dependent), can be accessed through mem. Writes are permitted only while the process is in the Stopped state and only to user addresses or registers. The read-only proc file contains the kernel per-process structure. Its main use is to recover the kernel stack and program counter for kernel debugging. The read-only segment file contains a textual display of the memory segments attached to the process. Each line has multiple fields: the type of segment (Stack, Text, Data, Bss, etc.); one-letter flags such as R for read-only, if any; starting virtual address, in hexadecimal; ending virtual address, and reference count. The read-only status file contains a string with eight fields, each followed by a space. The fields are: the process name and user name, each 27 characters left justified; the process state, 11 characters left justified (see ps(1)); the six 11-character numbers also held in the process's #c/cputime file, and the amount of memory used by the process, except its stack, in units of 1024 bytes. The text file is a pseudonym for the file from which the process was executed; its main use is to recover the symbol table of the process. The wait file may be read to recover Waitmsg records from the exiting children of the process. If the process has no extant children, liv- ing or exited, a read of wait will block. It is an error for a process to attempt to read its own wait file when it has no children. When a process's wait file is being read, the process will draw an error if it attempts a wait system call; similarly, if a process is in a wait system call, its wait file cannot be read by any process. Textual messages written to the ctl file control the execution of the process. Some require that the process is in a particular state and return an error if it is not. stop Suspend execution of the process, putting it in the Stopped state. start Resume execution of a Stopped process. waitstop Do not affect the process directly but, like all other messages ending with stop, block the process writing the ctl file until the target process is in the Stopped state or exits. Also like other stop control messages, if the target process would receive a note while the message is pending, it is instead stopped and the debugging process is resumed. startstop Allow a Stopped process to resume, and then do a waitstop action. hang Set a bit in the process so that, when it completes an exec(2) system call, it will enter the Stopped state before returning to user mode. This bit is inherited across a fork(2). nohang Clear the hang bit. kill Kill the process the next time it crosses the user/kernel boundary. Strings written to the note file will be posted as a note to the process (see notify(2)). The note should be less than characters long; the last character is reserved for a terminating NUL character. A read of at least characters will retrieve the oldest note posted to the process and prevent its delivery to the process. The notepg file is similar, but the note will be delivered to all the processes in the target process's note group (see fork(2)). However, if the process doing the write is in the group, it will not receive the note. The notepg file is write-only. The textual noteid file may be read to recover an integer identifying the note group of the process (see RFNOTEG in fork(2)). The file may be written to cause the process to change to another note group, provided the group exists and is owned by the same user. FILES
/sys/src/9/*/mem.h /sys/src/9/*/dat.h SEE ALSO
debugger(2), mach(2), cons(3) SOURCE
/sys/src/9/port/devproc.c PROC(3)
All times are GMT -4. The time now is 01:06 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy