> 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;
