I recently did some simulation work on MSM device by Atlas. When defining one trap level in the device, the program can work successfully. However, when adding another trap level, the results show no difference and the program says " Process interrupted by signal SEGV".
Does anyone have the same problem or know how to solve it? Your assistance must be appreciated.
Thanks for your reply.
I checked my program and hardly found any evident errors. Since I am a beginner of Atlas(Silvaco), could you please offer some specific examples causing SIGSEGV?
I do PC programming, so I can't be a lot of help with this, but I doubt the two are terribly dissimilar. A seg fault is an error in which your program has tried to access memory it doesn't have permission to access. You may have a loop that's stepping outside of its allowed memory:
Code:
char array[5];
for(int i = 0; i < 7; i++)
{
print array[i];
}
Here the for loop will run through elements 0-6 of the array, but the array only holds 5 elements, numbered 0-4. Just after the fifth loop, the program will hit an error. Whether or not this is error sends SIGSEGV depends on the system.
Most often, a seg fault is caused by a pointer being NULL. If you have deleted or freed any object, then reference it later, you'll get a seg fault as thanks.