access variable through program stack


 
Thread Tools Search this Thread
Top Forums Programming access variable through program stack
# 1  
Old 11-06-2008
GCC has a number of hooks which can be used to modify the behavior of malloc, realloc, and free by specifying appropriate hook functions. Check out __malloc_hook, __realloc_hook, etc. You can do heap consistency checking using mcheck() and probing using mprobe(). You can use the mallinfo structure to return information about the allocated memory and mallopt to tune memory allocation. However to implement garbage collection in C you are going to have to basically replace malloc and not just "modify" it. Not for the faint hearted!

There are a number of publicly available libraries which implement garbage collection generally using some variation of a mark-sweep algorithm. These libraries allow you to allocate memory as you normally would, i.e. using C malloc or C++ new, without the need to explicitly deallocate memory. One such implementation is the Boehm conservative garbage collector. Have a look at the source code to get an idea of the algorithms used. Another is the Solaris libgc library.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

Local variable in a C function is not getting created in stack when its compiled with GCC

Hi, I am working in UEFI EDK2 Bios source. We created a platform related new package in the EDK2 source. I find a strange issue with the platform related code we added. When I did source level debugging I noticed the local variable in a C function is not getting created in stack when its... (6 Replies)
Discussion started by: Divya R
6 Replies

2. Programming

Access a value in 2D array in C program

Hi All, I am new to c programming. I am getting compilation error in the below program. Can somebody help me? #include<stdio.h> #include<string.h> void main() { int i=j=0; char a={'f1',4,'f2','4'}; char count; for(i=0;i<2;i++) { for(j=1;j<=2;j++) { ... (2 Replies)
Discussion started by: sam_14189
2 Replies

3. Programming

How to read max stack size -Xss that is set/default for a java program?

I need to know what is the maximum stack size i.e. -Xss my java program is running with. Is there a way to find that out from inside my java program code and outside of it. What i am looking for is to read whatever the current set max limit -Xss (stack sie) is for a particular JVM(not... (3 Replies)
Discussion started by: mohtashims
3 Replies

4. UNIX for Dummies Questions & Answers

Which program can I use for blocking unauthorized access via/ssh/ftp

Hi, I need to install a program on my Centos 5.3 server that will block unauthorized ssh/ftp access attempts. The two features I require is that I should be able to configure the program to block the IP of the intruder after a a certain amount of access attempts and that it should display a... (3 Replies)
Discussion started by: mojoman
3 Replies

5. Shell Programming and Scripting

bin program access

Hello, I was wondering if I have something in my bin dir and I want to access it from another directory to make a change how can I go about it. Thank you. (7 Replies)
Discussion started by: gingburg
7 Replies

6. Filesystems, Disks and Memory

get stack trace from C program on Solaris 8

I'm on solaris 8. I need to check the stack trace inside my C program. I don't have printstack or walkstack. I tested getcontext and it works. But how do I get the symbols from "stack_t" ? Help please. Many thanks! (4 Replies)
Discussion started by: rydahl
4 Replies

7. Programming

Accessing microsoft access from C program

I have read a number of references to libraries that could be linked into a C program to access various databases. I have been tasked with writing an oracle library that would be able to access an Microsoft access database. The oracle database is running on a Unix server and would have to access... (2 Replies)
Discussion started by: beilstwh
2 Replies

8. Programming

finding stack location in C using program

Is there a way to find the address of stack memory writing a program? Please guide me (12 Replies)
Discussion started by: jacques83
12 Replies

9. Shell Programming and Scripting

How to access the C program variables in shell script

hi I wanted to access the C program variables in shell script. This script is called from the same C program. What are the ways in which i can access variables thankx (3 Replies)
Discussion started by: bhakti
3 Replies

10. Programming

C program with Oracle database access

Hey, I want to access oracle database through Unix C programming.. Can you through me some light on that... (5 Replies)
Discussion started by: kavi
5 Replies
Login or Register to Ask a Question
java(5) 							File Formats Manual							   java(5)

NAME
java, javac, jre, jdb, javah, javap, javadoc, appletviewer, rmic, rmiregistry, serialver, native2ascii, jar, javakey - The Java Develop- ment Kit tools SYNOPSIS
java [ options ] classname <args> java_g [ options ] classname <args> DESCRIPTION
This reference page describes the java command only. The Java Development Kit (JDK) is part of the Java Virtual Machine (VM). If the JDK documentation was installed on your Tru64 UNIX system, you can view documentation on all of the JDK tools, and other Java reference mate- rial, at the following location: /usr/share/doclib/java/index.html The java command invokes an interpreter that executes Java bytecodes. It executes Java class files created by a Java compiler, for instance, javac. NOTES
Any arguments that appear after classname on the command line are passed to the main method of the class. The java command expects the binary representation of the class to be in a file called classname.class, which is generated by compiling the corresponding source file with javac. All Java class files end with the filename extension .class which the compiler automatically adds when the class is compiled. classname must contain a main method defined as follows: class Aclass { public static void main(String argv[]){ . . . } } java executes the main method and then exits unless main creates one or more threads. If any threads are created by main then java doesn't exit until the last thread exits. Ordinarily, you compile source files with javac then run the program using java. However, java can be used to compile and run programs when the -cs option is used. As each class file is loaded its modification date is compared to the modification date of the class source file. If the source has been modified more recently, it is recompiled and the new class file is loaded. java repeats this procedure until all the classes are correctly compiled and loaded. The interpreter can determine whether a class is legitimate through the mechanism of verification. Verification ensures prior to their exe- cution that class files do not violate any language constraints. java_g is a non-optimized version of java suitable for use with debuggers like jdb. EXAMPLES
The classname argument is the name of the class to be executed. classname must be fully qualified by including its package in the name, for example: % java java.lang.String When you define your own classes you need to specify their location. Use CLASSPATH to do this. CLASSPATH consists of a colon separated list of directories that specifies the path. For example: .:/home/xyz/classes The system always appends the location of the system classes onto the end of the class path unless you use the -classpath option to specify a path. OPTIONS
Allows the Java debugger, jdb, to attach itself to this java session. When -debug is specified on the command line, java displays a pass- word which must be used when starting the debugging session. When a compiled class is loaded, this option causes the modification time of the class bytecode file to be compared to that of the class source file. If the source has been modified more recently, it is recompiled and the new class file is loaded. Specifies the path java uses to look up classes. Overrides the default or the CLASSPATH environment variable if it is set. Directories are separated by colons. Thus the general format for path is: .:<your_path> For example: .:/home/xyz/classes:/usr/local/java/classes Sets the maximum size of the memory allocation pool (the garbage collected heap) to x. The default is 16 megabytes of memory. x must be greater than or equal to 1000 bytes. By default, x is measured in bytes. You can specify x in either kilobytes or megabytes by appending the letter k for kilobytes or the letter m for megabytes. Sets the startup size of the memory allocation pool (the garbage collected heap) to x. The default is 1 megabyte of memory. x must be > 1000 bytes. By default, x is measured in bytes. You can specify x in either kilobytes or megabytes by appending the letter k for kilobytes or the letter m for megabytes. Turns off asynchronous garbage collection. When activated no garbage collection takes place unless it is explicitly called or the program runs out of memory. Normally garbage collection runs as an asynchronous thread in parallel with other threads. Turns off garbage collection of Java classes. By default, the Java interpreter reclaims space for unused Java classes during garbage collection. Prints the build version information. Prints a usage message. Each Java thread has two stacks: one for Java code and one for C code. The -ss option sets the maximum stack size that can be used by C code in a thread to x. Every thread that is spawned during the execution of the program passed to java has x as its C stack size. The default units for x are bytes. The value of x must be greater than or equal to 1000 bytes. You can modify the meaning of x by appending either the letter k for kilobytes or the letter m for megabytes. The default stack size is 128 kilobytes (-ss 128k). Each Java thread has two stacks: one for Java code and one for C code. The -oss option sets the maximum stack size that can be used by Java code in a thread to x. Every thread that is spawned during the execution of the program passed to java has x as its Java stack size. The default units for x are bytes. The value of x must be greater than or equal to 1000 bytes. You can modify the meaning of x by appending either the letter k for kilobytes or the letter m for megabytes. The default stack size is 400 kilobytes (-oss 400k). Prints a trace of the instructions executed (java_g only). Causes java to print a message to stdout each time a class file is loaded. Runs the verifier on all code. Runs the verifier on all code that is loaded into the sys- tem via a classloader. verifyremote is the default for the interpreter. Turns verification off. Causes the garbage collector to print out messages whenever it frees memory. Redefines a property value. propertyName is the name of the property whose value you want to change and newValue is the value to change it to. For example, this command line % java -Dawt.button.color=green ... sets the value of the property awt.button.color to "green". java accepts any number of -D options on the command line. ENVIRONMENT VARIABLES
Used to provide the system a path to user-defined classes. Directories are separated by colons, for example, .:/home/xyz/classes:/usr/local/java/classes SEE ALSO
If the JDK documentation was installed on your Tru64 UNIX system, you can view it at the following location: /usr/share/doclib/java/index.html delim off java(5)