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
PTHREAD_ATTR_GETSTACK(3P)				     POSIX Programmer's Manual					 PTHREAD_ATTR_GETSTACK(3P)

PROLOG
This manual page is part of the POSIX Programmer's Manual. The Linux implementation of this interface may differ (consult the correspond- ing Linux manual page for details of Linux behavior), or the interface may not be implemented on Linux. NAME
pthread_attr_getstack, pthread_attr_setstack - get and set stack attributes SYNOPSIS
#include <pthread.h> int pthread_attr_getstack(const pthread_attr_t *restrict attr, void **restrict stackaddr, size_t *restrict stacksize); int pthread_attr_setstack(pthread_attr_t *attr, void *stackaddr, size_t stacksize); DESCRIPTION
The pthread_attr_getstack() and pthread_attr_setstack() functions, respectively, shall get and set the thread creation stack attributes stackaddr and stacksize in the attr object. The stack attributes specify the area of storage to be used for the created thread's stack. The base (lowest addressable byte) of the stor- age shall be stackaddr, and the size of the storage shall be stacksize bytes. The stacksize shall be at least {PTHREAD_STACK_MIN}. The stackaddr shall be aligned appropriately to be used as a stack; for example, pthread_attr_setstack() may fail with [EINVAL] if ( stackaddr & 0x7) is not 0. All pages within the stack described by stackaddr and stacksize shall be both readable and writable by the thread. RETURN VALUE
Upon successful completion, these functions shall return a value of 0; otherwise, an error number shall be returned to indicate the error. The pthread_attr_getstack() function shall store the stack attribute values in stackaddr and stacksize if successful. ERRORS
The pthread_attr_setstack() function shall fail if: EINVAL The value of stacksize is less than {PTHREAD_STACK_MIN} or exceeds an implementation-defined limit. The pthread_attr_setstack() function may fail if: EINVAL The value of stackaddr does not have proper alignment to be used as a stack, or if ( stackaddr + stacksize) lacks proper alignment. EACCES The stack page(s) described by stackaddr and stacksize are not both readable and writable by the thread. These functions shall not return an error code of [EINTR]. The following sections are informative. EXAMPLES
None. APPLICATION USAGE
These functions are appropriate for use by applications in an environment where the stack for a thread must be placed in some particular region of memory. While it might seem that an application could detect stack overflow by providing a protected page outside the specified stack region, this cannot be done portably. Implementations are free to place the thread's initial stack pointer anywhere within the specified region to accommodate the machine's stack pointer behavior and allocation requirements. Furthermore, on some architectures, such as the IA-64, "over- flow" might mean that two separate stack pointers allocated within the region will overlap somewhere in the middle of the region. RATIONALE
None. FUTURE DIRECTIONS
None. SEE ALSO
pthread_attr_init(), pthread_attr_setdetachstate(), pthread_attr_setstacksize(), pthread_create(), the Base Definitions volume of IEEE Std 1003.1-2001, <limits.h>, <pthread.h> COPYRIGHT
Portions of this text are reprinted and reproduced in electronic form from IEEE Std 1003.1, 2003 Edition, Standard for Information Technol- ogy -- Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of Electrical and Electronics Engineers, Inc and The Open Group. In the event of any discrepancy between this version and the original IEEE and The Open Group Standard, the original IEEE and The Open Group Standard is the referee document. The original Standard can be obtained online at http://www.opengroup.org/unix/online.html . IEEE
/The Open Group 2003 PTHREAD_ATTR_GETSTACK(3P)
All times are GMT -4. The time now is 03:49 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy