Check memory leak using sun studio 10
Hi,
I'm using sun studio 10 to find the memory leak. I pre loaded the librtc.so and attached the process. Then I set the break point at the beginning of scenairo and the end of scenario. Then I trigger the event and program flow hits the break point at the beginning of scenairo, I try to enable the "Memory Check". Then I continue my application. But, I don't see anything show up in the "memory check" tab in the debug window.
Is anyone there who know what is the problem here? Appreciate your help.
Li
Can you help mi. Novice
mail [email protected]
Similar Messages
-
Error in compiling boost example program using sun studio 12
I am trying to compile the below example program from boost using sun studio 12 C++ compiler.
#include <boost/interprocess/shared_memory_object.hpp>
#include <boost/interprocess/mapped_region.hpp>
#include <cstring>
#include <cstdlib>
#include <string>
int main(int argc, char *argv[])
using namespace boost::interprocess;
if(argc == 1)
{ //Parent process
//Remove shared memory on construction and destruction
struct shm_remove
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
} remover;
//Create a shared memory object.
shared_memory_object shm (create_only, "MySharedMemory", read_write);
//Set size
shm.truncate(1000);
//Map the whole shared memory in this process
mapped_region region(shm, read_write);
//Write all the memory to 1
std::memset(region.get_address(), 1, region.get_size());
//Launch child process
std::string s(argv[0]); s += " child ";
if(0 != std::system(s.c_str()))
return 1;
else
//Open already created shared memory object.
shared_memory_object shm (open_only, "MySharedMemory", read_only);
//Map the whole shared memory in this process
mapped_region region(shm, read_only);
//Check that memory was initialized to 1
char mem = static_cast<char>(region.get_address());
for(std::size_t i = 0; i < region.get_size(); ++i)
if(*mem++ != 1)
return 1; //Error checking memory
return 0;
Using the below command :
CC -c 1.cpp -I/home/syogacha/satish/boost_1_43_0 -library=stlport4
"/home/syogacha/satish/boost_1_43_0/boost/interprocess/shared_memory_object.hpp", line 284: Error: The function "shm_open" must have a prototype.
"/home/syogacha/satish/boost_1_43_0/boost/interprocess/shared_memory_object.hpp", line 307: Error: The function "shm_unlink" must have a prototype.
"/home/syogacha/satish/boost_1_43_0/boost/interprocess/mapped_region.hpp", line 549: Error: Formal argument 1 of type char* in call to shmdt(char*) is being passed void*.
3 Error(s) detected.
I even tried to include sys/mman.h but got the same compilation errors.
Do we need to take care of few other specific things while using boost headers.
Thanks in advance ...Hope this helps....
#include <sys/mman.h>
#include <boost/interprocess/shared_memory_object.hpp>
#include <boost/interprocess/mapped_region.hpp>
#include <cstring>
#include <cstdlib>
#include <string>
#include <iostream>
#include <iterator>
int main(int argc, char *argv[])
{ //main
using namespace boost::interprocess;
if(argc == 1)
{ //Parent process
//Remove shared memory on construction and destruction
struct shm_remove
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
} remover;
//Create a shared memory object.
shared_memory_object shm (create_only, "MySharedMemory", read_write);
//Set size
shm.truncate(1000);
//Map the whole shared memory in this process
mapped_region region(shm, read_write);
//Write all the memory to 1
std::memset(region.get_address(), 1, region.get_size());
//Launch child process
std::string s(argv[0]); s += " child ";
if(0 != std::system(s.c_str()))
return 1;
else
//Open already created shared memory object.
shared_memory_object shm (open_only, "MySharedMemory", read_only);
//Map the whole shared memory in this process
mapped_region region(shm, read_only);
//Check that memory was initialized to 1
char *mem = static_cast<char*>(region.get_address());
for(std::size_t i = 0; i < region.get_size(); ++i)
if(*mem++ != 1)
return 1; //Error checking memory
return 0;
} -
Bug:4705928 PLSQL: Memory leak using small varrays
We have Oracle version 10.2.0.1.0
We have a problem with a procedure.
In our scenario we make use of VARRAY in the procedure to pass some filter parameters to a select distinct querying a view made on three tables.
Unfotunately not always execution it is successful.
Sometimes it returns wrong value (0 for the count parameter), sometimes (rarely) the server stops working.
We suspect that this is caused by a bug fixed in versione 10.2.0.3.0
Bug:4705928 PLSQL: Memory leak using small varrays when trimming the whole collection and inserting into it in a loop
We suspect this becasue we made two procedure the first (spProductCount) uses a function (fnProductFilter) to calculate the values of a varray and passes them into the select,
while in the second procedure (spProductCount2) parameters are passed directly into the statement without varray
and there are failures only in the first procedure.
On the other hand on another server 10.2.0.1.0 we never have this problem.
The instance manifesting the bug runs under shared mode, while the other is under dedicated mode.
Turning the first one to dedicated mode makes the bugs disapear.
Unfortunately this is not a solution.
In the sample there are the three table with all constraints, the view, tha varray custom type, the function and the two procedures.
Is there someone that may examine our sample and tell us if the pl/sql code corresponds to the bug desciption.
We also want to know if it's possibile that the same server running under different mode (SHARED/DEDICATED) doesn't behave the same way.
The tables:
--Products
CREATE TABLE "Products" (
"Image" BLOB
, "CatalogId" RAW(16)
, "ProductId" RAW(16)
, "MnemonicId" NVARCHAR2(50) DEFAULT ''
, "ProductParentId" RAW(16)
ALTER TABLE "Products"
ADD CONSTRAINT "NN_Products_M04" CHECK ("CatalogId" IS NOT NULL)
ALTER TABLE "Products"
ADD CONSTRAINT "NN_Products_M05" CHECK ("ProductId" IS NOT NULL)
ALTER TABLE "Products"
ADD CONSTRAINT "PK_Products"
PRIMARY KEY ("ProductId")
CREATE INDEX "IX_Products"
ON "Products" ("CatalogId", "MnemonicId")
CREATE UNIQUE INDEX "UK_Products"
ON "Products" (DECODE("MnemonicId", NULL, NULL, RAWTOHEX("CatalogId") || "MnemonicId"))
--Languages
CREATE TABLE "Languages" (
"Description" NVARCHAR2(250)
, "IsStandard" NUMBER(1)
, "LanguageId" RAW(16)
, "MnemonicId" NVARCHAR2(12)
ALTER TABLE "Languages"
ADD CONSTRAINT "NN_Languages_M01" CHECK ("LanguageId" IS NOT NULL)
ALTER TABLE "Languages"
ADD CONSTRAINT "NN_Languages_M05" CHECK ("MnemonicId" IS NOT NULL)
ALTER TABLE "Languages"
ADD CONSTRAINT "PK_Languages"
PRIMARY KEY ("LanguageId")
ALTER TABLE "Languages"
ADD CONSTRAINT "UK_Languages"
UNIQUE ("MnemonicId")
--ProductDesc
CREATE TABLE "ProductDesc" (
"Comment" NCLOB
, "PlainComment" NCLOB
, "Description" NVARCHAR2(250)
, "DescriptionText" NCLOB
, "PlainDescriptionText" NCLOB
, "LanguageId" NVARCHAR2(12)
, "ProductId" RAW(16)
ALTER TABLE "ProductDesc"
ADD CONSTRAINT "NN_ProductDescM01" CHECK ("LanguageId" IS NOT NULL)
ALTER TABLE "ProductDesc"
ADD CONSTRAINT "NN_ProductDescM02" CHECK ("ProductId" IS NOT NULL)
ALTER TABLE "ProductDesc"
ADD CONSTRAINT "PK_ProductDesc"
PRIMARY KEY ("ProductId", "LanguageId")
ALTER TABLE "ProductDesc"
ADD CONSTRAINT "FK_ProductDesc1"
FOREIGN KEY("ProductId") REFERENCES "Products" ("ProductId")
ALTER TABLE "ProductDesc"
ADD CONSTRAINT "FK_ProductDesc2"
FOREIGN KEY("LanguageId") REFERENCES "Languages" ("MnemonicId")
/The view:
--ProductView
CREATE OR REPLACE VIEW "vwProducts"
AS
SELECT
"Products"."CatalogId"
, "ProductDesc"."Comment"
, "ProductDesc"."PlainComment"
, "ProductDesc"."Description"
, "ProductDesc"."DescriptionText"
, "ProductDesc"."PlainDescriptionText"
, "Products"."Image"
, "Languages"."MnemonicId" "LanguageId"
, "Products"."MnemonicId"
, "Products"."ProductId"
, "Products"."ProductParentId"
, TRIM(NVL("ProductDesc"."Description" || ' ', '') || NVL("ParentDescriptions"."Description", '')) "FullDescription"
FROM "Products"
CROSS JOIN "Languages"
LEFT OUTER JOIN "ProductDesc"
ON "Products"."ProductId" = "ProductDesc"."ProductId"
AND "ProductDesc"."LanguageId" = "Languages"."MnemonicId"
LEFT OUTER JOIN "ProductDesc" "ParentDescriptions"
ON "Products"."ProductParentId" = "ParentDescriptions"."ProductId"
AND ("ParentDescriptions"."LanguageId" = "Languages"."MnemonicId")
/The varray:
--CustomType VARRAY
CREATE OR REPLACE TYPE Varray_Params IS VARRAY(100) OF NVARCHAR2(1000);
/The function:
--FilterFunction
CREATE OR REPLACE FUNCTION "fnProductFilter" (
parCatalogId "Products"."CatalogId"%TYPE,
parLanguageId NVARCHAR2 := N'it-IT',
parFilterValues OUT Varray_Params
RETURN INTEGER
AS
varSqlCondition VARCHAR2(32000);
varSqlConditionValues NVARCHAR2(32000);
varSql NVARCHAR2(32000);
varDbmsCursor INTEGER;
varDbmsResult INTEGER;
varSeparator VARCHAR2(2);
varFilterValue NVARCHAR2(1000);
varCount INTEGER;
BEGIN
varSqlCondition := '(T_Product."CatalogId" = HEXTORAW(:parentId)) AND (T_Product."LanguageId" = :languageId )';
varSqlConditionValues := CHR(39) || TO_CHAR(parCatalogId) || CHR(39) || N', ' || CHR(39 USING NCHAR_CS) || parLanguageId || CHR(39 USING NCHAR_CS);
parFilterValues := Varray_Params();
varSql := N'SELECT FilterValues.column_value FilterValue FROM TABLE(Varray_Params(' || varSqlConditionValues || N')) FilterValues';
BEGIN
varDbmsCursor := dbms_sql.open_cursor;
dbms_sql.parse(varDbmsCursor, varSql, dbms_sql.native);
dbms_sql.define_column(varDbmsCursor, 1, varFilterValue, 1000);
varDbmsResult := dbms_sql.execute(varDbmsCursor);
varCount := 0;
LOOP
IF (dbms_sql.fetch_rows(varDbmsCursor) > 0) THEN
varCount := varCount + 1;
dbms_sql.column_value(varDbmsCursor, 1, varFilterValue);
parFilterValues.extend(1);
parFilterValues(varCount) := varFilterValue;
ELSE
-- No more rows to copy
EXIT;
END IF;
END LOOP;
dbms_sql.close_cursor(varDbmsCursor);
EXCEPTION WHEN OTHERS THEN
dbms_sql.close_cursor(varDbmsCursor);
RETURN 0;
END;
FOR i in parFilterValues.first .. parFilterValues.last LOOP
varSeparator := ', ';
END LOOP;
RETURN 1;
END;
/The procedures:
--Procedure presenting anomaly\bug
CREATE OR REPLACE PROCEDURE "spProductCount" (
parCatalogId "Products"."CatalogId"%TYPE,
parLanguageId NVARCHAR2 := N'it-IT',
parRecords OUT NUMBER
AS
varFilterValues Varray_Params;
varResult INTEGER;
varSqlTotal VARCHAR2(32000);
BEGIN
parRecords := 0;
varResult := "fnProductFilter"(parCatalogId, parLanguageId, varFilterValues);
varSqlTotal := 'BEGIN
SELECT count(DISTINCT T_Product."ProductId") INTO :parCount FROM "vwProducts" T_Product
WHERE ((T_Product."CatalogId" = HEXTORAW(:parentId)) AND (T_Product."LanguageId" = :languageId ));
END;';
EXECUTE IMMEDIATE varSqlTotal USING OUT parRecords, varFilterValues(1), varFilterValues(2);
END;
--Procedure NOT presenting anomaly\bug
CREATE OR REPLACE PROCEDURE "spProductCount2" (
parCatalogId "Products"."CatalogId"%TYPE,
parLanguageId NVARCHAR2 := N'it-IT',
parRecords OUT NUMBER
AS
varFilterValues Varray_Params;
varResult INTEGER;
varSqlTotal VARCHAR2(32000);
BEGIN
parRecords := 0;
varSqlTotal := 'BEGIN
SELECT count(DISTINCT T_Product."ProductId") INTO :parCount FROM "vwProducts" T_Product
WHERE ((T_Product."CatalogId" = HEXTORAW(:parentId)) AND (T_Product."LanguageId" = :languageId ));
END;';
EXECUTE IMMEDIATE varSqlTotal USING OUT parRecords, parCatalogId, parLanguageId;
END;Edited by: 835125 on 2011-2-9 1:31835125 wrote:
Using VARRAY was the only way I found to transform comma seprated text values (e.g. "'abc', 'def', '123'") in a collection of strings.A varray is just a functionally crippled version of a nested table collection type, with a defined limit you probably don't need. (Why 100 specifically?) Instead of
CREATE OR REPLACE TYPE varray_params AS VARRAY(100) OF NVARCHAR2(1000);try
CREATE OR REPLACE TYPE array_params AS TABLE OF NVARCHAR2(1000);I don't know whether that will solve the problem but at least it'll be a slightly more useful type.
What makes you think it's a memory leak specifically? Do you observe session PGA memory use going up more than it should?
btw good luck with all those quoted column names. I wouldn't like to have to work with those, although they do make the forum more colourful.
Edited by: William Robertson on Feb 11, 2011 7:54 AM -
How to generate gdb compatible .o for CMT using Sun Studio C compiler?
Hello,
we've been working on a joint project for telco bearer plane applications on CMT.
We started the project using gcc for Sparc and we switched to Sun Studio compiler when we hit some bugs in gcc (optimized mode was not completely stable). The switch took a few weeks due to syntax differences and toolchain option changes.
With Sun Studio we got a double digit percent performance improvement, so Sun Studio proved more stable and faster than gcc.
To debug programs we require gdb, because the Telco customers are more familiar with it. The problem is that Sun Studio generates object files which are not compatible with gdb.
Our main requirement is to be able to generate gdb compatible object files using Sun Studio compiler.
We checked this link:
http://cooltools.sunsource.net/gcc/ReleaseNotes.html
but this seems to be a variant of gcc. At this point we cannot switch compiler because of the performance and stability issues mentioned above and because it will take a few weeks to months to switch.
We have two questions:
1) Is there a way to generate gdb compatible object files using Sun Studio 11?
2) If not, is this funcionality going to be available in a future release of Sun Studio and what is the time frame?
Thanks for your help.
Marco Zandonadi
Teja TechnologiesThe undefined symbol is in the C++ runtime support library that is part of Solaris. Probably you have an out-fo-date version of the libraries.
You can get current patches from the Sun Studio patch page:
http://developers.sun.com/prodtech/cc/downloads/patches/index.html
From the page for your version of WorkShop or Sun Studio, select the C++ Runtime Library patch for the version of Solaris that your are running. While you are at it, you can get the current compiler patches as well.
If patching the runtime libraries does not fix the problem, let me know, and also show the exact command lines that you use for compiling and linking the program. -
Memory leak using repeater tag
Hi,
I am trying to show a report that has 33113 rows using a repeater tag, but i get the following error: "An error has occurred: java.lang.OutOfMemoryError".
I am using the pageFlow to bind a ArrayList that already contains the rows.
Any ideas?
Thanks a lot.Link to Microsoft Connect issue
https://connect.microsoft.com/VisualStudio/feedback/details/1045459/memory-leak-using-windows-accessibility-tools-microsoft-narrator-windows-speech-recognition-with-net-applications
Link to Microsoft Community post
http://answers.microsoft.com/en-us/windows/forum/windows_7-performance/memory-leak-using-windows-accessibility-tools/8b32a81c-f828-415c-aec8-34e3106f9cb0?tm=1420469245606 -
Compiling C++ using Sun Studio 11
Hi,
I have downloaded and installed "IBM Message Service client for C/C++" (in Solaris 5.8) to publish messages to Websphere MQ Topics using C++ programs. The IBM installation comes with a compiled version of the sample programs and I am able to execute them successfully using Sun studio 11's C++ compiler. But when I try to compile these sample programs , it throws the following exception.
mqm$ CC SampleConsumerCPP.cpp
"SampleConsumerCPP.cpp", line 36: Error: Could not open include file<xms.hpp>.
"SampleConsumerCPP.hpp", line 39: Error: Could not open include file<helperfunctions.h>.
"SampleConsumerCPP.hpp", line 52: Error: xmsVOID is not defined.
"SampleMsgListener.hpp", line 44: Error: xms is not defined.
"SampleMsgListener.hpp", line 44: Error: MessageListener is not defined.
"SampleMsgListener.hpp", line 55: Error: Type name expected instead of "xmsVOID".
"SampleMsgListener.hpp", line 55: Error: "virtual" is not allowed here.
"SampleMsgListener.hpp", line 55: Error: Identifier expected instead of "const".
"SampleMsgListener.hpp", line 55: Error: Use ";" to terminate declarations.
"SampleMsgListener.hpp", line 56: Error: Use ";" to terminate declarations.
"SampleMsgListener.hpp", line 56: Error: "," expected instead of "displayMsg".
"SampleMsgListener.hpp", line 62: Error: Use ";" to terminate declarations.
"SampleMsgListener.hpp", line 62: Error: Type name expected instead of "xmsVOID".
"SampleMsgListener.hpp", line 63: Error: Type name expected instead of "xmsINT".
"SampleMsgListener.hpp", line 63: Error: Identifier expected instead of "const".
"SampleMsgListener.hpp", line 63: Error: Multiple declaration for const.
"SampleMsgListener.hpp", line 63: Error: Use ";" to terminate declarations.
"SampleMsgListener.hpp", line 64: Error: Use ";" to terminate declarations.
"SampleMsgListener.hpp", line 64: Error: Type name expected instead of "xmsVOID".
"SampleMsgListener.hpp", line 65: Error: Type name expected instead of "xmsINT".
"SampleMsgListener.hpp", line 65: Error: Identifier expected instead of "const".
"SampleMsgListener.hpp", line 65: Error: Multiple declaration for const.
"SampleMsgListener.hpp", line 65: Error: Use ";" to terminate declarations.
"SampleMsgListener.hpp", line 67: Error: Use ";" to terminate declarations.
"SampleMsgListener.hpp", line 73: Error: Type name expected instead of "xmsINT".
Compilation aborted, too many Error messages.
The compiler does not recognize the "make" command either.
Find below my PATH settings.
"/tools/java/j2sdk1.4.2_08/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/sbin:/data/sunstudio10/SUNWspro/bin:/opt/mqm/java/bin:/usr/openwin/bin:/data/mqapi/tools/cpp/include:/data/mqapi/tools/samples/common:/data/mqapi/lib"
where /data/mqapi contains the XMS installation.
Any pointers to solve this issue will be highly appreciated.
Thanks,
MeeraaHi,
I have downloaded and installed "IBM Message Service
client for C/C++" (in Solaris 5.8) ...
mqm$ CC SampleConsumerCPP.cpp
"SampleConsumerCPP.cpp", line 36: Error: Could not
open include file<xms.hpp>.You probably don't want to be running CC on its own.
The compiler does not recognize the "make" command
either.
Find below my PATH settings.
"/tools/java/j2sdk1.4.2_08/bin:/usr/bin:/bin:/usr/sbin
:/sbin:/usr/local/bin:/usr/local/sbin:/data/sunstudio1
0/SUNWspro/bin:/opt/mqm/java/bin:/usr/openwin/bin:/dat
a/mqapi/tools/cpp/include:/data/mqapi/tools/samples/co
mmon:/data/mqapi/lib"
where /data/mqapi contains the XMS installation.You need to set your path in your shell. Make sure that /usr/ccs/bin is in your PATH.
Have you really installed Studio 11 in "/data/sunstudio10" - that looks a bit confuding to me!
Paul -
Nasty memory leak using sockets inside threads
In short, any time I create or use a socket inside a worker thread, that Thread object instance will never be garbage collected. The socket does not need to be connected or bound, it doesn't matter whether I close the socket or not, and it doesn't matter whether I create the Socket object inside the thread or not. As I said, it's nasty.
I initially encountered this memory leak using httpclient (which creates a worker thread for every connect() call), but it is very easy to reproduce with a small amount of stand-alone code. I'm running this test on Windows, and I encounter this memory leak using the latest 1.5 and 1.6 JDK's. I'm using the NetBeans 5.5 profiler to verify which objects are not being freed.
Here's how to reproduce it with an unbound socket created inside a worker thread:
public class Test {
public static class TestRun extends Thread {
public void run() {
new Socket();
public static void main(String[] strArgs) throws Exception {
for(;;) {
(new TestRun()).start();
Thread.sleep(10);
}Here's how to reproduce it with a socket created outside the thread and used inside the worker thread:
public class Test {
public static class TestRun extends Thread {
Socket s;
public TestRun(Socket s) { this.s = s; }
public void run() {
try {
s.bind(new InetSocketAddress(0));
s.close();
} catch(Exception e) {}
public static void main(String[] strArgs) throws Exception {
for(;;) {
(new TestRun(new Socket())).start();
Thread.sleep(10);
}Here's how to reproduce it implementing Runnable instead of extending Thread:
public class Test {
public static class TestRun implements Runnable {
public void run() {
Socket s = new Socket();
try { s.close(); } catch(Exception e) {}
public static void main(String[] strArgs) throws Exception {
for(;;) {
(new Thread(new TestRun())).start();
Thread.sleep(10);
}I've played with this a lot, and no matter what I do the Thread instance leaks if I create/use a socket inside it. The Socket instance gets cleaned up properly, as well as the TestRun instance when it's implementing Runnable, but the Thread instance never gets cleaned up. I can't see anything that would be holding a reference to it, so I can only imagine it's a problem with the JVM.
Please let me know if you can help me out with this,
SeanFind out what is being leaked. In the sample programs, add something like this:
static int loop_count;
while (true) {
if (++count >= 1000) {
System.gc();
Thread.sleep(500); // In case gc is async
System.gc();
Thread.sleep(500);
System.exit(0);
}Then run with java -Xrunhprof:heap=sites YourProgram
At program exit you get the file java.hprof.txt which contains something like this towards the end of the file:
percent live alloc'ed stack class
rank self accum bytes objs bytes objs trace name
1 0.47% 0.47% 736 5 736 5 300036 char[]
2 0.39% 0.87% 616 3 616 3 300000 java.lang.Thread
3 0.30% 1.17% 472 2 472 2 300011 java.lang.ThreadLocal$ThreadLocalMap$Entry[]
4 0.27% 1.43% 416 2 416 2 300225 java.net.InetAddress$Cache$Type[]See, only three live Thread objects (the JVM allocates a few threads internally, plus there is the thread running main()). No leak there. Your application probably has some type of object that it's retaining. Look at "live bytes" and "live objs" to see where your memory is going. The "stack trace" column refers to the "TRACE nnnnn"'s earlier in the file, look at those to see where the leaked objects are allocated.
Other quickies to track allocation:
Print stats at program exit:
java -Xaprof YourProgram
If your JDK comes with the demo "heapViewer.dll" (or
heapViewer.so or whatever dynamic libraries are called on your system):
java -agentpath:"c:\Program Files\Java\jdk1.6.0\demo\jvmti\heapViewer\lib\heapViewer.dll" YourProgram
Will print out statistics at program exit or when you hit Control-\ (Unix) or Control-Break (Windows). -
Binary compatibility problems using Sun Studio 12
I'm working in a project that uses Orbix [1] third-party libraries. I have installed the Sun Studio 12 on Solaris 10 SPARC but I have got some strange segfault problems (the exactly same code works fine in a Linux box - using g++). I read the 1.4 section of Sun Studio 12 C++ Userguide [2] but I have a doubt:
Is there no way to compile my code using Sun Studio 12 using shared libraries compiled against earlier Sun Studio C++ compiler versions (like Sun Studio 8 or some version before Sun Studio 11)?
I think my problem is related to the fact that Orbix team used Sun Studio 8 as some notes found in their headers indicate:
"IONA Technologies ART IDL Compiler POA C++ Generator asp 6.3.3 SunOS 5.8 CC_5.5 2008/06/13 21:04:37 EDT"
A secondary question: Is CC 5.5 present in Sun Studio 8, right?
Can anyone help me? Every tips are welcome :) Thanks in advance!
[1] http://web.progress.com/en/orbix/orbix_standard.html
[2] http://docs.sun.com/app/docs/doc/820-7599/6nirkt6f7?a=viewAmadeuBarbosa wrote:
I'm working in a project that uses Orbix [1] third-party libraries. I have installed the Sun Studio 12 on Solaris 10 SPARC but I have got some strange segfault problems (the exactly same code works fine in a Linux box - using g++). I read the 1.4 section of Sun Studio 12 C++ Userguide [2] but I have a doubt:I don't think 1.4 Binary Compatibility Verification applies in your case. It's referring to processor capability to execute certain (new) instructions; if your third-party libraries were compiled a while ago, it's highly unlikely they use instructions not implemented by the processor you have.
Is there no way to compile my code using Sun Studio 12 using shared libraries compiled against earlier Sun Studio C++ compiler versions (like Sun Studio 8 or some version before Sun Studio 11)?Generally speaking, any library compiled with older Sun Studio C++ compiler is supposed to be compatible with any library or executable compiled with newer version provided that all parties did everything right. For example, that third-party libraries should not be statically linked with C++ run-time support libraries; your executable should be linked with latest compiler driver (CC) so that it records correct dependencies on support libraries.
Of course, there could be (and actually are) compiler bugs standing in the way of compatibility. Some of them can be fixed, some - like demangler issue described in http://docs.sun.com/source/820-4155/c++.html - can't. There is no easy way to tell if you hit a compiler bug or bulding/linking issue, or bug in the code that was previously unseen.
I think my problem is related to the fact that Orbix team used Sun Studio 8 as some notes found in their headers indicate:
"IONA Technologies ART IDL Compiler POA C++ Generator asp 6.3.3 SunOS 5.8 CC_5.5 2008/06/13 21:04:37 EDT"Yes, looks like it was compiled by 5.5, which is part of Sun Studio 8
>
A secondary question: Is CC 5.5 present in Sun Studio 8, right?That's correct. -
Memory leak using 10.2.0.3 OCI client on Solaris
Hi,
We are using OCI client libraries to connect our C++ program to the Oracle Database. The program does a lot of selects, inserts and SP calls.
Oracle client and Oracle server both are 10.2.0.3.
We have been observing a memory leak of 4M bytes in the C++ program every few minutes since last few days. On debugging through Purify, libumem, and Sun Studio 12, we finally managed to narrow down the problem to the Oracle client library OCI calls.
The Sun Studio leak check shows the following -
Leak #37, Instances = 157, Bytes Leaked = 655004
kpummapg + 0x00000098
kghgex + 0x00000648
kghfnd + 0x000005BC
kghalo + 0x00000A6C
kghgex + 0x000003BC
kghfnd + 0x000005BC
kghalo + 0x00000A6C
kghgex + 0x000003BC
kghfnd + 0x000005BC
kghalo + 0x00000A6C
kpuhhalo + 0x00000558
kpugdesc + 0x00000AD4
kpugparm + 0x00000374
COCIResultSet::InterpretData() + 0x000001B4
COCIResultSet::COCIResultSet(COCIStatement*,OCIStmt*,OCIError*) + 0x000000A4
COCIStatement::PrepareResult() + 0x00000190
A select is executed, a resultset is fetched and the resultset is immeidately closed. The same piece of code has been running at various production systems without any problems. Most of the other sites are either 10.2.0.4 or 9i.
On searching Metalink and various other forums, I found similar issues faced in 10.2.0.1.
Could someone advise if there are any bugs corresponding to this which have been closed. Would upgrading to 10.2.0.4 solve the problem?
Thanks.Hi,
Apparently a similar issue is being discussed over here:
Re: Memory Leak
Hope it helps.
Regards,
Naveed. -
Memory leak using 10.2.0.3 OCCI client on Solaris 10
Hi,
We are using OCCI client libraries to connect our C++ program to the Oracle Database. The program does a lot of selects, inserts and SP calls.
Oracle client and Oracle server both are 10.2.0.3 on Solaris 10.
We have been observing a memory leak of 4M bytes in the C++ program every few minutes since last few days. On debugging through Purify, libumem, and Sun Studio 12, we finally managed to narrow down the problem to the Oracle client library OCI calls.
The Sun Studio leak check shows the following -
Leak #37, Instances = 157, Bytes Leaked = 655004
kpummapg + 0x00000098
kghgex + 0x00000648
kghfnd + 0x000005BC
kghalo + 0x00000A6C
kghgex + 0x000003BC
kghfnd + 0x000005BC
kghalo + 0x00000A6C
kghgex + 0x000003BC
kghfnd + 0x000005BC
kghalo + 0x00000A6C
kpuhhalo + 0x00000558
kpugdesc + 0x00000AD4
kpugparm + 0x00000374
COCIResultSet::InterpretData() + 0x000001B4
COCIResultSet::COCIResultSet(COCIStatement*,OCIStmt*,OCIError*) + 0x000000A4
COCIStatement::PrepareResult() + 0x00000190
A select is executed, a resultset is fetched and the resultset is immeidately closed. The same piece of code has been running at various production systems without any problems. Most of the other sites are either 10.2.0.4 or 9i.
On searching Metalink and various other forums, I found similar issues faced in 10.2.0.1.
Could someone advise if there are any bugs corresponding to this which have been closed. Would upgrading to 10.2.0.4 solve the problem?
Thanks.Please ... one post and one post only in the group most appropriate to your inquiry. Please open an SR at metalink.
-
One of tmy applications has memory leak sometimes, not always. I find most tools to check the memory leak needs to reproduce the leak, but now I can not reproduce this issue, is there any tool to analyze the source code to find the memory leak?
Don't know about source code analyzer, but dbx, the Sun Studio debugger, is capable of detecting memory leaks at run time. You can use bcheck script on your application or start dbx, issue "check -leaks" and then run your app under dbx.
-
Memory leak using GWT 1.4 and JDK 1.5
We are running the following:
OS : Solaris 5.10
WebLogic version: 10.0
JDK : Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_14-b03)
Java HotSpot(TM) Server VM (build 1.5.0_14-b03, mixed mode)
GWT : 1.4
Oracle : 10g
We have found memory leak with the above configuration.
After running 1 session we are facing memory leak. The used Java heap is 4% higher than the one used after we conduct
our memory tests for 1 user.
Similarly, after running 5 concurrent sessions we are also facing memory leak where Java heap memory is utilised more
by about 4%.
I have used JRockit JDK 1.5 for figuring out memory leak. I have not found a memory leak in any of the modules
developed by us.
The memory leak issue is we think concerned with the version of JDK, Weblogic, Sun OS.
Can somebody please suggest whether we can use the version as mentioned above?
Any help on this front will be appreciated.gc log:
#log information
JAVA_OPTS="$JAVA_OPTS -verbose:gc "
JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDetails "
JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCTimeStamps "
JAVA_OPTS="$JAVA_OPTS -XX:+DisableExplicitGC "
JAVA_OPTS="$JAVA_OPTS -Xloggc:/path/to/gclog`date +%Y.%m.%d-%H:%M:%S`.log "Check sun papers for garbage collecting tips.
>
Is there any other way we can detect memory leak?
>
You have to profile your Application Server like you did with your own code.
regards
slowfly -
Memory Leak in Sun's Demo Applets
After banging my head over some memory leak errors in an applet I wrote, I decided to try out one of Sun's applets to see if it too leaks memory. I loaded \j2sdk1.4.2_03\demo\applets\Animator\example1.html in IE6 (WinXP, JRE 1.4.2_03) and just left it running with the focus. At 11:45am the task manager showed IE to be using 13,100KB and over the past hour and a half that amount steadily increased to 16,424KB and keeps rising (now it's 16,452KB.) The problem I've run into in my applet (which does a lot of painting like this demo applet) is that it eventually just consumes more and more memory until it locks up.
So I was wondering what advice people have. I've used JProfiler and I can't find any leaks in my code. I'm debating on making my applet a java application, but I'm just not sure if it will suffer from the same memory leaks. Thanks for any help.Well off hand with out seeing any code, check that you are not instantiating any object repeatedly...
(creating new objects over and over and never getting rid of the old ones by still keeping referenced to it)
something like this...
public class MemoryEater
MemoryEater()
MemoryEater eater = new MemoryEater();
public void doSomeThing()
MemoryEater eater = new MemoryEater();
eater.doSomeThing();
}now this is a exaggerated example, but it might help you locate your memory leak...
and memory usage varies depending on application and OS states... 1mb is not much of a rise, but then again overtime it makes a difference... Try other applets and see if you get the same results... I am currently running the same applet, and for a short bit the usage steadily climbed maybe about 2mb overall but then started to level off...
Running the same applet, I got the initial memory usage increase,
then a slow steady climb for about another meg and now it fluctuates between 36.5 and 37.5 mb...
Note: I also have other Internet Explorer windows open, so naturally my overall memory usage is going to be higher...
If it is still a problem, you can try re-installing the JVM...
I hope this was helpful...
- MaxxDmg...
- ' He who never sleeps... ' -
I have a memory leak problem using the CWGraph control.
I have an SDI application (MFC using Measurement Studio) and I generate dynamicaly a dialog containing a 2D Graph, and I use the OnTimer() of the dialog to generate data and to update the graph, with a timer of 50ms. In OnTimer() function I have a loop to generate
and to update two plots on the graph. When I call a method of the graph (for example for changing the color of the plot or for updating a plot (using PlotXvsY)), I have a periodic increasing of memory with a fixed amount of memory (4k). In the same OnTimer() function I update also some CWSlide controls without memory leaks.
If I comment the line that call a method of graph
(ex. m_Graph.Plots.Item(1)....), the code works wi
thout memory leaks.
I'll apreciate any suggestion about this problem.I had the same memory leak problem with my program as well. I do not think it is because of using CWGraph. Memory leaks occur when you allocate memory and did not free them. The problem will accumulate and crashed randomly (sometime it crashed when you just move mouse around). Try this: if the program does not crash (memory leak crash) on the first time it compiles and runs, it is probable has nothing to do with the CWGraph. On the second and third run, if you did not free variable, the program will usually crashed. If your program crashed on the first time it runs, the problem might be something else.
-
Memory leak using Oracle thin driver on wls6.1...
Hi, I've been attempting to find a memory leak in an application that
runs on WLS 6.1 SP2, on Solaris 8 and accessing an Oracle 9i db. We
are using the Type 4 (Thin) driver and JProbe reports that hundreds of
oracle.jdbc.* objects are left on the heap after my test case
completes. Specifically oracle.jdbc.ttc7.TTCItem is the most common
loiterer on the heap. I have verified that after each database access
the resources are release correctly (i.e. ResultSet, Connection,
PreparedStatement, etc.)
Has anyone encountered similar problems? or does anyone know how to
fix this?
Thanks,
Tim WatsonHi Tim!
We have seen problem using oracle 817 client that has been resolved using
901 client for type2(oci) driver, But i am not aware of thin driver
problem. You should check with oracle if they have find any customer's
with this problem.
Thanks,
Mitesh
Tim Watson wrote:
Hi, I've been attempting to find a memory leak in an application that
runs on WLS 6.1 SP2, on Solaris 8 and accessing an Oracle 9i db. We
are using the Type 4 (Thin) driver and JProbe reports that hundreds of
oracle.jdbc.* objects are left on the heap after my test case
completes. Specifically oracle.jdbc.ttc7.TTCItem is the most common
loiterer on the heap. I have verified that after each database access
the resources are release correctly (i.e. ResultSet, Connection,
PreparedStatement, etc.)
Has anyone encountered similar problems? or does anyone know how to
fix this?
Thanks,
Tim Watson
Maybe you are looking for
-
I have a problem with a grey text box. It writes and says all i do. For example: When i now write it says all the letters one for one. If i open a new rogram it says so. If i click on something it gives me information about it. I can click the box an
-
How to create a separate invoice for each delivery line?
Hello, Our customer is requesting a separate invoice for each delivery line. Is there a way to configure this? Or a customization? Thanks, Joy
-
Adobe After Effects CS3 Crash help on Vista
I've installed and re installed After Effects about 5 times now and it keeps crashing when the splash screen pops up. The message "Adobe After Effects CS3 has stopped working." I found that the message comes up when its initializing Media Core. Here
-
How to manage a Web Gallery?
I posted a Web Gallery from Aperture to .mac. How to access the page to edit, or remove from the web? How to add it to my Home page on my .mac account? I could not find the answer in Help. Help!
-
my earphones are sticy and fuzzy sounding when i use them what do i do to fix them? IBM Think Pad Windows XP Pro