본문 바로가기

컴퓨터/디버깅32

R 사용하기 (초보) 오늘 처음으로 R 을 써먹기 위해 이것저것 하고 있다. 어떤 문제들을 겪고, 어떻게 해결해 나가는지 살펴 보기 위해 기록한다. 우선, RGui 에서 스크립트를 작성하기 위해 새로운 스크립트를 열어서 몇 가지 명령어를 집어 넣은 후 실행을 시키기 위해 기계적으로 F5 를 눌렀는데, 계속 이상하게 실행이 된다. 그래서 찾다찾다 메뉴에 보니 줄 실행과, 전부 실행이 따로 있다. 따라서 F5는 아마도 커서가 있는 위치의 줄만 실행시키는 것 같아서, 전체를 선택하고 F5를 누르니 역시 문제 없이 실행된다. >. 2010. 10. 21.
segmentation fault의 원인 segmentation fault는 잘못된 메모리 참조 때문에 발생한다. 즉, 건드리지 말아야 할 곳을 건드렸기 때문에 발생하는 에러이다. 주로 NULL 로 설정된 영역을 건드리거나, 할당받은 메모리 공간을 넘은 곳을 건드렸을 때 발생한다. 난해한 점은 디버그 모드로 프로그램을 실행시킬 경우, 건드리지 말아야 할 메모리를 건드렸을 때가 아니라, 할당받은 메모리를 해제할 때 에러가 발생한다는 점인데, 예를 들면 다음과 같다. int *p = new int[5]; p[5] = 11; // 여기서는 에러가 발생하지 않는다. delete p; // 여기서 에러 발생. gcc(나 g++)의 경우는 컴파일 할 때 option 을 지정해 주지 않으면 release mode로 컴파일이 되기 때문에 잘못된 메모리를 건드.. 2010. 9. 30.
cannot instantiate abstract class 다음과 같은 에러 메세지가 떴다. 환경 : Visual C++ 9.0 (VS2008) on Windows XP SP3 \PerfusionCalculatorDLG.cpp(1950) : error C2259: 'IICGPerfusion2' : cannot instantiate abstract class 에러 메세지는 말 그대로 abstract class를 instantiation 시킬 수 없다는 의미이다. abstract class란 pure virtual function 을 갖는 class를 말하며, instantiation 이란 객체를 메모리에 실제로 올리는 것을 의미하는 것으로 알아도 무방하다. 각각에 대하여 좀 더 자세히 살펴 보자. pure virtual function 이란 base class 작.. 2010. 7. 26.
invalid operands of types 다음과 같은 에러가 났다. 환경: GCC 4.1.2 20080704 (Red Hat 4.1.2-46) on CentOS 5.4 [adnoctum@bioism analysis_code]$ make g++ -c classify_GSE_into_cluster_file_pathway.cpp classify_GSE_into_cluster_file_pathway.cpp: In function ‘int main(int, const char**)’: classify_GSE_into_cluster_file_pathway.cpp:152: error: invalid operands of types ‘std::ofstream*’ and ‘const char [20]’ to binary ‘operator 2010. 6. 12.