> You only need to add "-gdb" option to your run_job command
It was a useful option. I have now located the problematic function.....

> Another piece of advice. If you're trying to get a good stack trace, it 
>will help to modify makefile.defs so that things are compiled with 
>-ggdb.
As you stated, I have to recompile everything. At this expense, is it possible 
to watch the variables? or the only way is to put extra DBG_ messages.

>Also, from my experience, when you get a seg fault when trying to do a 
>push call, it's usually because the index that you're pushing the 
>message to is out of range.
My changes work well in flexus3.0. I replaced my file with the original one and 
in the debug.out file all thing are the same as the previous one (my changes) 
but the original one continues.... mine doesn't!

Thanks all,

// Naderan *Mahmood;




________________________________
From: Lotfi Kamran Pejman <[email protected]>
To: Mahmood Naderan <[email protected]>; simflex <[email protected]>
Sent: Mon, June 28, 2010 10:50:17 PM
Subject: RE: SIGSEGV in FastCacheImpl.cpp (push function)

Mahmood,

That is fairly simple. You only need to add "-gdb" option to your run_job 
command.

Pejman

________________________________________
From: Mahmood Naderan [[email protected]]
Sent: Monday, June 28, 2010 4:06 PM
To: simflex
Subject: Re: SIGSEGV in FastCacheImpl.cpp (push function)

No problem with the original Branchpredictor.cpp. One question that I have how 
can I get a call stack with GDB?  I tried to catch the PID of the simics but 
cannot because as soon as I run the run_job, I get the SIGSEGV so there is no 
time to attach it to the GDB. I will then try to figure out the problem.

// Naderan *Mahmood;


________________________________
From: Lotfi Kamran Pejman <[email protected]>
To: Mahmood Naderan <[email protected]>; simflex <[email protected]>
Sent: Mon, June 28, 2010 4:49:35 PM
Subject: RE: SIGSEGV in FastCacheImpl.cpp (push function)

Mahmood,

Can you please redo the same experiment with Flexus 4.0 (Without your code)? If 
the same problem exist, I will fix it. It is impossible for me to debug a code 
without having the code :)

Pejman
________________________________________
From: Mahmood Naderan [[email protected]<mailto:[email protected]>]
Sent: Monday, June 28, 2010 11:41 AM
To: simflex
Subject: SIGSEGV in FastCacheImpl.cpp (push function)

Dear all,
I get a segmentation fault right after rub_job (for creating flexpoints). Using 
the vverb level, I have attached the debug.out file. Some notes:

1- I have changed somethings in branchpredictor.cpp but have no problem in 
flexus-3.0.

2- Using the original iface messages, the last message in the debug output was 
<FastCacheImpl.cpp:294>. However I added an extra message after the "if" 
statement to check if the bug is the conditional statement or not.
  DBG_( Iface, Addr(aMessage.address()) ( << "Request Left Lookup... ));
  if (snp_lookup != NULL) {
  DBG_( Iface, Addr(aMessage.address()) ( << "Request Left Snoop Lookup... ));
  }
  DBG_( Iface, ( << "skipping if, exiting push" ) );

3- In the attached log, my message is shown and that means there is something 
wrong with whom that call "push" function. If you search in the debug.out, you 
can see that "skipping if, exiting push" is shown several times (lines 67, 75, 
82, 90, 99, 112, 119, 126, 133, 140) and the last time that it appear is in 
line 
147.


I will appreciate anyone who explain what is actually going on in the 
FastCacheImpl.cpp (push function). As far as I know, brachprediction messages 
should be appeared after FastCacheImpl. So I don't think my changes are the 
root 
of the problem.

Thanks,

// Naderan *Mahmood;


      

Reply via email to