Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
21324 Discussions

Debug problem: Thread Suspended, <symbol is not available>

Altera_Forum
Honored Contributor II
1,984 Views

Hello All, 

 

 

I have problem when I debug a project based on stratixIII_3sl150. (Quartus 9.0, Nios II 9.0) 

The execution of my program (c/c++) in visual studio is fine and its build in niosII is fine. 

When i launch the debug in niosII, the project starts give results but it is suspended without finish the execution of the program. It mentions: 

 

 

- Thread [0] (Suspended: Signal 'SIGTRAP' received. Description:Trace/breakpoint trap.)  

1 <symbol is not available> 0x080000a0  

 

 

Please any help. 

Thanks.
0 Kudos
4 Replies
Altera_Forum
Honored Contributor II
1,121 Views

Maybe you have a watchdog that resets your hardware and takes the program from flash, which may be different. 

Perhaps a memory leak, buffer overflow, out of memory... 

 

Have you succeeded with "run as" ?
0 Kudos
Altera_Forum
Honored Contributor II
1,121 Views

Thank you, 

 

I don't interstend what is "a watchdog" can you please explain more. 

With "Run as" the project also suspended. 

Please have you an idea how detect memory leak, buffer overflow and out of memory with niosII? 

I was used "Valgrind" the open source framework (linux) that can automatically detect many memory management and threading bugs, and profile programs. It mentions:  

==12709== LEAK SUMMARY: 

==12709== definitely lost: 331,376,596 bytes in 11,421 blocks 

==12709== indirectly lost: 1,254,632 bytes in 5,131 blocks 

==12709== possibly lost: 32,673,808 bytes in 10,567 blocks 

==12709== still reachable: 0 bytes in 0 blocks 

==12709== suppressed: 0 bytes in 0 blocks 

==12709== ERROR SUMMARY: 3257 errors from 86 contexts (suppressed: 0 from 0) 

 

I don't know if these errors are the cause of my problem or not and also how correct it? 

 

Please have you any idea? 

waiting for your reply and best wishes to you, 

thank you.
0 Kudos
Altera_Forum
Honored Contributor II
1,121 Views

A watchdog is a component (outside or inside FPGA) that reset the board after a specified timeout. It must be regulary cleared by a function in the embedded software to prevent reset. 

By this way, if a "bug" occure and hangs the program, after the watchdog timeout, your system is restarted and "continue" to work. 

 

I don't use any software to analyse the code to detect memory leak, buffer overflow... since NIOS II is not an usual environment (like Unix) : the memory is determined by Qsys/sopc. 

I advice to write a good code : I know how much memory takes a structure, write interrupt routines short as possible, non blocking functions...  

 

Why do you use Visual Studio. why don't you use the Eclipse NIOS II SBT supplied with QUARTUS ? 

Some versions of Visual Studio does NOT respect C standard (one developer has to write numeral# IFDEF to write code specially to Visual Studio).
0 Kudos
Altera_Forum
Honored Contributor II
1,121 Views

Thank you very much for your help

0 Kudos
Reply