'전체'에 해당되는 글 687건

  1. 약간의 개조 2012/05/02
  2. VMware Fusion DARWIN.ISO 위치 2012/04/20
  3. 하이스피드 제시 1화 2012/03/09
  4. MessageBox 2012/01/10
  5. ....일단 체크 2011/12/01
  6. 언제나 그래픽 시작은.. (1) 2011/10/10
  7. 새벽 자전거 (1) 2011/09/15
  8. 5.3 클래스를 만들어 보자 2011/09/02
  9. 4.4 클래스를 인스턴스화 해 사용해 보자. 2011/09/01
  10. ALIENWARE HACINTOSH LION 배경 2011/08/29
  11. IEEE1394b to eSATA 2011/07/28
  12. [DX9] 4.라이트의 작성과 사용 2 - 매터리얼과 라이트 설정 2011/07/12
  13. [DX9] 4.라이트의 작성과 사용 1 - 신 지오메트리 초기화 2011/07/12
  14. [DX9] 3.행렬의 사용방법 3 - 사영 트랜스폼 행렬 정의 2011/07/12
  15. [DX9] 3.행렬의 사용방법 2 - 뷰 트랜스폼 행렬 정의 2011/07/06
  16. [DX9] 3.행렬의 사용방법 1 - 월드 트랜스폼 행렬 정의 (1) 2011/07/06
  17. [DX9] 2.정점의 렌더링 3 - 표시의 렌더링 2011/07/04
  18. [DX9] 2.정점의 렌더링 2 - 정점 버퍼의 설정 2011/07/04
  19. 맥에 일반 키보드 연결 시 F12등 먹통 될 경우 2011/07/03
  20. [DX9] 2.정점의 렌더링 1 - 커스텀 정점 타입의 정의 2011/07/02
  21. [DX9] 1.디바이스의 작성 5 - 셧 다운 2011/07/02
  22. [DX9] 1.디바이스의 작성 4 - 신의 렌더링과 표시 2011/07/02
  23. [DX9] 1.디바이스의 작성 3 - 시스템 메시지 처리 2011/07/02
  24. [DX9] 1.디바이스의 작성 2 - Direct3D 의 초기화 2011/07/01
  25. [DX9] 1.디바이스의 작성 1 - 윈도우 작성 2011/07/01
  26. FLASH 작업용 참고 자료 2011/06/14
  27. Arc Touch Mouse 2011/06/10
  28. The CPU has been disabled by the guest operating system. 2011/06/01
  29. CM1017 서비스 모드 들어가기 2011/05/31
  30. gdb help 2011/05/15
사용자 삽입 이미지


동작하긴 하는데, CF 32G를 넣으면 전류부족이라고 징징거려서 외부 전원을 이용하도록 살짝 개조.
어차피 카메라 연결한 거랑 비슷할테니 큰 문제는 없어보이지만..(혹시나해서 다이오드 박아놓긴 했음)

....


Creative Commons License
2012/05/02 19:17 2012/05/02 19:17
/Applications/VMware Fusion.app/Contents/Library/isoimages

사용자 삽입 이미지

Creative Commons License
2012/04/20 00:03 2012/04/20 00:03

자료 없이 듣고 한 거라 번역미스가 있을지도 ㅡㅅ-);;;

---------

누구냐! 나와라!

어째서냐

PROLOGUE

기폭

적당히 하는 게 어떤가?

누구냐?

부정한 이 세상을 살아가면서 거기에 죄를 더할 생각은 아니겠지?

네놈은

하트랜드의 신부

스스로는 깨닫지 못하겠지?

너희들의 마음은 비명을 지르고 있단다.

신께 구원을 받도록 하라.

이 몸이 행복한 천계로 이끌어 주마.

헛소리마!

괴로워 하라. 그 고통이 너희들의 마음 속 더러움을 정화시켜 줄 거다.

고통이 크면 클 수록 천계의 행복도 커지게 되는 법.

그것이 하트랜드 정교의 가르침이다.

천계에 행복을 이루는 것

방해하지 마라

살인은 그만 둬

이건 성스러운 일이다

제시

제시

날 집어던지다니 배짱도 좋은 걸

이름을 물어보고 싶군

제시, 제시 무어

------

------

녀석 어디에 있는 거야

조사 결과는?

이걸 봐

이 별을 잡으려고 떠났다고 해

그런가

그래서 목적지는?

오르코 성계 쪽인 거 밖에는 알 수 없었어

오르코 성게?

또 빠져나간 건가

괜찮아. 반드시 쫓아갈테니까

제시

방랑하는 어린 양을 구원하는 것이 우리들 하트랜드에 있는 신부의 임무다.

네 녀석을 천계에 상큼히 데려다 주마.

난 술취한 놈과 싸우고 싶지 않아

뭐라구

저기요

넌 뭐냐

저는 테레누입니다.

여러분들께 부탁이 있습니다.

..란 얘기는 그 악당들로부터 너를 호위하면 된다는 건가?

그렇습니다. 행성 가네트까지.

행성 가네트까지?

흠, 재밌는 얘기로군

제시, 네 녀석과의 승부는 그 뒤로 미루지

테레누씨.

네?

죄송한 얘기지만 그 의뢰는 거절하겠습니다.

뭐야? 매정하구만

아니면 뭔가

이 소년에게 조금 여자가 말을 걸었다고 질투하는 건가?

닥쳐

티아나는 동생이다.

동생?

동생이라고

그래. 난 동생밖에 될 수 없는 거겠지

동..생.이라

좋아, 만전을 기했겠지?

당신, 제시와는 어떤 관계?

좀 전에 만난 게 전부지

그런데, 녀석이라면 할 수 있어.

피가 끓는 걸

제시

제시

아깐 미안해

쓸데없는 말해서

그 배를 조금이라도 빨리 찾아서 쫓아가야..라고 생각했던지라..

알아 사실 티아나가 말하는 게 옳지

지금 생판 남의 의뢰따위 받을 여유가 없지

무, 무슨 일이야

아, 아무것도 아니야

곤란한 사람을 보면 그냥 지나칠 수 없는 거지 제시는

분명히 의뢰를 받아들일거라 생각했어

테레누가 말한 행성 가네트는 오르코 성계의 제 4 행성이야.

테레누의 소리다

넌 여기 있어

테레누는?

녀석들이

제길

어이 제시

뭐하는 놈이야

제길, 대체 왜 내가 이런 짓을 해야하는 거야

좋아, 지금이다

녀석 뭐 이리 빨라

흥, 얼마나 빠른가 테스트해볼까?

녀석이 안 보이는군요

여기까지 쫓아온 것만해도 대단하… 으윽

개색휘가

개늠이 눈은 어따 두고…

어이 누가 오는데

심야의 조깅이라 건강한 생활이구만

멈춰 죽고싶지 않으면

서둘러야 한다고

여긴 우리 허가 없인 못 가지

네 놈 면상이 맘에 안 드는 걸

죽어줘야 겠어

잠시 빌리지

남의 물건 빼앗다니 나쁜 놈

이놈~

당신도 참

오, 이거 제법일세

젊은 것치고는

------------------

어찌되었건 무사해서 다행이야

아까는 조금 방심했지만 이걸로 당신을 노리는 녀석이 있다는 건 확실하군

내가 꼭 붙어있어주겠어

어때 테레누

나와 시간 좀 내주겠나?

기분 전환겸 한 잔 마시지

기쁘지만 조금 피곤해서

오늘밤은 쉬고싶네요

그거 유감일…

티아나

뭐야 제시

티아나가 없어

뭐야?

이건

제시, 수고했어

티아나를 구하고 싶으면

행성 가네트의 우주항에 혼자 오도록

테레누에게

속았다

이미 도망갔어

어떻게 할까 제시

파오롱

파오롱

티아나가 납치됐다.

어디 있는지 찾아봐 줘.

뭐야

시끄럽잖아, 모처럼 편히 자고있었…

누구야? 여긴 어디야?

나 말인가? 나는 파오롱일세.

자네는 지금 내 몸 속이지.

뭐라고?

당신의 몸 속이라고?

그렇지. 나는 생체 우주선일세.

생…체… 우주선?

이해가 되려나?

나는 일 억년 역사를 지닌 콘테인 문명의 최고 걸작 중 하날세.

뭐, 자네들 수준의 머리론 상상도 못하겠지만

뭐라는 거야 이 자식

내 보내줘!

아아 그렇게 화내지 말라고

원한다면 밖에 내보내 줄 수도 있지

어~이

파오롱, 티아나는?

기다려 봐, 조사하고 있어

음, 이 이미 행성엔 없는 거 같군

티아나

파오롱, 행성 가네트로 향해 줘.

제시, 괜찮겠나?

목적한 상대를 마지카까지 쫓았는데 도중에 딴짓할 여유는 없…

닥치고 가 달라고

목적한 상대?

대체 뭘 하려던 거야?

그건 할아버지가 소중히여겼던 거다.

이제 네게 전해줘도 될 거 같구나.

제시, 소중히 간직하렴

생일 축하한다

고마워요.

소마즈씨

오, 꽤나 멋진 시계로구나

그럼 나도 생일 축하 선물을 하나 해볼까?

아들을 잠시 데려가겠습니다.

자 전부터 보고싶어하던 대 망원경이다.

한번 들여다 보거라

어? 정말 괜찮아요?

그래.

괜찮니?

제시, 제시~

티아나

누구?

파고스입니다.

들어오세요

테레누님, 제시녀석이.

어떻게 됐다는 거죠?

이 행성 가네트의 우주항에

어느새?

비스마크의 경계도 걸리지 않고 어떻게?

행성의 위성 궤도 내에 녀석의 것으로 보이는 우주선을 발견했습니다만

제시는 혼자서?

이걸 보시죠

테레누님, 녀석이라면 반드시 원하는 걸 가져와줄 거라 확신합니다.

나도 그렇게 믿고 싶어요.

데려온 애는?

불쌍하게도

이것도 모두 비스마크가를 위해

제시란 놈이 살아있다고?

정말인가? 테레누

직접 확인하면 되잖아

기대되는군.

5년 전보다 얼마나 파워업했는지 내가 확인해 보지.

내려달라면 내려 줘!

제시 혼자서 오라고 했네.

지금은 어설프게 움직이지 않는 게 좋아.

진득히 앉아있을 때가 아니잖아!

날 내려보내 줘.

날 내려보내 줘!

호오?

제시

오, 있다 있어!

알았나? 너희들은 끼지 않는다!

어디!

어떻게 된 거냐 제시! 덤벼봐라!

싸움은 싫어. 무기는 가지고 있지 않다.

남자라면 짐승이 돼라. 뜨거운 피를 끓어 올리며 싸워라!

크로스님! 크로스님!

짜식~

멈춰라 크로스

제라 누님

제시의 실력은 충분히 알았을 터

이 이상의 테스트는 필요 없다.

물러가거라.

크로스라고 헀나. 돌려줄 게.

응? 이건?

어느새?

이 짜식~

크로스!

뭐라고? 소도혼?

그 계곡에 들어가 파란 색 돌을 찾아와 줬음 해요.

파란 색 돌?

그건 뭐지?

당신은 상관할 바 없는 것

당신은 그저 그 돌이 있나 없나만 살펴보고 오면 되는 거예요.

거절한다면?

티아나!

티아나를 돌려받고 싶다면…

말하는 걸 들으세요.

테레누!

이쪽으로 와 주세요. 제시.

당신에게 좋은 물건을 빌려주겠어요.

이건 우리 비스마크가의 수집품이에요.

내가 무기를 쓰지 않는 건…

소도혼의 계곡에 들어가 돌아온 사람은 한 명도 없어요.

티아나를 구하고 싶으면…

제시, 무기를 골라요.

완고하군요. 그런 낡아빠진 총을

네 녀석은 내게 크게 창피를 줬지.

그래서 배웅하러 데리고 왔다구.

이 애를 구하고 싶다면 돌을 찾아 가지고 돌아와라!

반드시 돌아오지

----

----

MOBIUS

기억

더럽혀진 이 세상을 구원하는 건 누구냐?

Creative Commons License
2012/03/09 03:06 2012/03/09 03:06

MessageBox

from 학습/DirectX 2012/01/10 12:35
TCHAR szBuf[256];
 wsprintf(szBuf, TEXT("%d"),ddsd.lPitch);
 MessageBox(main_window_handle,szBuf,TEXT("TEST"),MB_OK);
Creative Commons License
2012/01/10 12:35 2012/01/10 12:35

function rotateView( inAngle )
{
    // Get ID's for the related keys
    var idslct = charIDToTypeID( "slct");
 
    var desc = new ActionDescriptor();
    var idnull = charIDToTypeID("null");
 
    var ref = new ActionReference();
    var idrotateTool = stringIDToTypeID("rotateTool");

    ref.putClass(idrotateTool);
 
    desc.putReference(idnull, ref);

   executeAction(idslct, desc);

 
}

요건 툴 셀렉트 까지만.. 근데 저 inAngle값을 어케 처리한다?


cTID = function(s) { return app.charIDToTypeID(s); }; 
sTID
= function(s) { return app.stringIDToTypeID(s); }; 
 
doMenuItem
= function(item, interactive) { 
   
var ref = new ActionReference(); 
   
ref.putEnumerated(cTID("Mn  "), cTID("MnIt"), item); 
 
   
var desc = new ActionDescriptor(); 
   desc
.putReference(cTID("null"), ref); 
 
   
try { 
     
var mode = (interactive != true ? DialogModes.NO : DialogModes.ALL); 
     executeAction
(sTID("select"), desc, mode); 
   
} catch (e) { 
     
if (!e.message.match("User cancelled")) { 
       
throw e; 
     
} else { 
       
return false; 
     
} 
   
} 
   
return true; 
} 
 
doMenuItem
(cTID('ActP')); // Set Zoom to 100% 
doMenuItem
(cTID('ZmIn')); // Zoom in on time more. (200 %) 


이건 줌 컨트롤 예제. 어라 줌은 찾았고 이제 로테이트를 ;ㅁ;;;;
Creative Commons License
2011/12/01 12:48 2011/12/01 12:48
땡그라미 땡그라미..ㅡㅅ-);

사용자 삽입 이미지


Creative Commons License
2011/10/10 14:30 2011/10/10 14:30

새벽 자전거

from 취미생활/Brompton 2011/09/15 07:05
사용자 삽입 이미지
Creative Commons License
2011/09/15 07:05 2011/09/15 07:05
게임을 구현함에 따라 조금씩 프로그램이 길어졌습니다. 제 4장에서는 기능의 일부를 별개의 메소드로 분할하는 방법으로 프로그램을 읽기 쉽게 할 수 있었습니다. 여기서는 프로그램을 읽기 쉽고 관리하기 쉽게 하기 위해 클래스를 만들어 봅니다.

Dice 클래스를 만들어 보자.

이 장에서는 주사위를 의미하는 클래스를 만들어봅니다. "클래스를 만든다"라고 하면 불안해 할지도 모릅니다만, 어렵지 않으니 도전해봅시다.

우선 클래스에 대해서 복습해 봅시다. 클래스라는 것은 "데이터를 조작하는 명령을 준비해놓은 도구함"과 같은 것으로 필드, 컨스트럭터, 프로퍼티, 메소드, 이벤트라는 멤버를 가지고 있습니다. 클래스를 만들 때에는 어떠한 멤버를 만들것인가를 설계할 필요가 있습니다. 이번에는 다음과 같은 멤버를 가진 클래스를 작성합니다.

(중략)

필드라는 것은 클래스 속의 데이터를 말합니다. 이번은 _number라는 int형 변수를 선언합니다. 클래스 속에서만 액세스 가능하고 클래스 밖에서는 액세스 할 수 없습니다. 변수명에 언더스코어(_)를 붙이고 있는 것은 이 후에 선얼할 프로퍼티명과 중복되지 않도록 하기 위함입니다.

컨스트럭터라는 것은 gcnew()로 클래스를 인스턴스화 할 때 움직이는 메소드입니다. 다시말해 초기화 전용의 메소드입니다. 이번에는 Dice()라는 초기화와 Dice(int형 인수)라는 초기화 2개를 작성합니다. 전자의 방법으로 초기화하면 최초의 주사위 값은 1이 되고, 후자의 방법으로 초기화한 경우 인수의 값이 주사위 값으로 설정됩니다.

프로퍼티는 클래스의 데이터를 의미합니다만, 실제로는 필드의 값을 넣고빼는 역할을 하고 있습니다. 필드에 값을 설정하는 set용 Number프로퍼티와 필드의 값을 취득하는 get용 Number 프로퍼티를 만듭니다.

메소드는 클래스로의 명령으로 이번에는 주사위의 값을 랜덤으로 변화시키는 Shake()라는 명령을 작성합니다.

이벤트는 클래스에서 발생한 변경등의 통지를 하는 장치입니다. 이번에는 구현하지 않습니다.

또 마지막으로 주의할 것이 1개의 클래스를 만들기 위해서는 2개의 파일이 필요하다는 것입니다. 1개는 헤더 파일이고, 하나는 소스 파일입니다.

(후략)

Creative Commons License
2011/09/02 10:27 2011/09/02 10:27
여기서는 클래스를 이용하는 데 기본이 되는 인스턴스란 무엇인가를 알아봅시다.

클래스를 사용해 보자
-------------------
제 1장에서는 오브젝트 지향의 메리트는 "클래스 속의 프로그램을 몰라도 사용방법만 이해하면 그 기능을 이용할 수 있다"고 설명했습니다. 그 예로 "쉐프에게 재료를 넘기고 조리의 방법을 지시하는 것으로 요리를 만들 수 있다"고 설명했습니다. 여기서 다시 쉐프의 예로 클래스를 이용하는 순서에 대해서 설명합니다.

용어--
클래스의 멤버
클래스는 프로퍼티와 메소드만이 아니라 필드, 컨스트럭터, 이벤트등의 조합으로도 구성됩니다. 그리고, 이것들 모두를 모아 클래스 멤버라 부릅니다. 또 필드와 컨스트럭터에 대해서는 5장에서 설명합니다.

클래스를 사용하는데에는 다음 3개의 포인트가 중요합니다.
1) 인스턴스화 2)프로퍼티의 설정과 참조 3)메소드의 실행

우선 클래스를 사용하려면 인스턴스라는 실체를 생성할 필요가 있습니다. 이것을 인스턴스화라 합니다. 클래스는 어디까지나 설계도이므로 인스턴스화에 의해 사용할 수 있게 됩니다. 쉐프라는 직함으로는 요리를 만들 수 없으며 쉐프를 고용하는(인스턴스화) 것으로 요리를 만들 수 있게 됩니다.
또, 클래스의 특징은 인스턴스마다 데이터를 가지고 있다는 것입니다. 클래스가 가진 데이터를 프로퍼티라 부릅니다. 쉐프 클래스를 2명 인스턴스화 하면 2종류의 다른 재료를 프로퍼티로 설정할 수 있습니다.
마지막으로 데이터를 조작하는 클래스의 명령인 메소드를 실행합니다. 쉐프의 예를 들자면 고기를 가진 쉐프에 "구워주세요"라고 명령하고, 채소를 가진 쉐프에게 "스프를 만들어주세요"라고 명령합니다.
이렇게 클래스를 이용하려면 "쉐프를 채용해(인스턴스화) 개별의 재료를 건네고(프로퍼티), 지시를 내리는(메소드)" 순서로 실행합니다. 그러면 실제 게임에서 클래스를 인스턴스화 해보겠습니다.

(중략)

코드 해설

여기서 난수를 발생할 수 있는 Random클래스를 사용합니다. 난수란 말 그대로 제멋대로 수를 내는 것입니다.

1] Random^ randomDice;

Random 클래스를 randomDice란 이름의 변수로 선언합니다. 이렇게 클래스의 변수를 선언할 때, 다음의 구문을 사용합니다.

클래스명^ 변수명;

int형등의 기본형 변수와 다르게 클래스 명 뒤에 "^"이라는 매니지코드의 클래스 인스턴스 영역을 나타내는 기호를 습니다. 이기호는 캐럿 또는 햇기호라 불립니다. 이렇게 인스턴스를 격납하는 변수를 선언할 때 이 기호를 사용합니다.

2] randomDice = gcnew Random();

클래스를 사용하려면 인스턴스화라는 초기화가 필요합니다. gcnew라는 키워드를 사용해 인스턴스화 하는 클래스의 이름을 지정합니다. 클래스에 따라서는 이름 뒤에 인수를 지정할 수 있습니다. 여기서는 Random 클래스를 지정하고 있기 때문에 Random 클래스라는 설게도에 근거해 randomDice가 인스턴스화됩니다.

변수명 = gcnew 클래스명();

3] int diceNumber;
diceNumber = randomDice->Next(1,7);

주사위의 눈을 격납하기위해 int형 diceNumber란 변수를 선언하고 Random 클래스의 Next메소드를 부르고 있습니다. 이 Next메소드에는 1과 1이라는 인수를 부여합니다. 그 결과 1이상 7미만(1~6)의 난수가 발생되어 diceNumber에 격납됩니다. 여기서는 메소드로부터 게산된 결과를 얻고있다는 걸 주목해 주세요. 이것을 메소드의 반환값이라고 합니다. 여기서는 Next메소드가 1~6의 숫자를 반환값으로 생성합니다.

4] Debug....
(중략)


힌트
(중략)
치형과 참조형
------------
.NET Framework의 매니지코드에서는 변수의 형에 치형과 참조형의 2종류가 있습니다. int, bool, float와 같은 기본형과 헬프를 볼 대에 "구조체: value class"라 정의 되어있는 형은 치형입니다. 이것 이외의 클래스 (Random과 String등)의 "클래스:ref class"라 정의 되어있는 형은 참조형입니다. 또, 치형과 참조형에스는 몇개의 다른 점이 있습니다. 치형은 그 변수의 값을 직접 격납하는 것에 반해, 참조형은 실체로의 참조를 격납합니다. 치형은 초기화에 초기값이 설정됩니다만, 참조형은 초기화시에 Null이 설정됩니다. 또, 대입할 때 치형은 그대로 값이 대입됩니다만, 참조형은 값이 아니 참조 정보(어드레스)가 대입됩니다. 참조형의 변수를 사용할 경우에는 이런 것을 이해해둘 필요가 있습니다.





Creative Commons License
2011/09/01 11:05 2011/09/01 11:05
사용자 삽입 이미지
사용자 삽입 이미지

ALIENWARE 해킨 라이온용 배경.. A LIONWARE ㅡㅅ-);;;;

사용자 삽입 이미지
Creative Commons License
2011/08/29 10:49 2011/08/29 10:49
MAC mini에는 eSATA포트가 없다. USB 2.0과 IEEE1394b(Firewire800)포트가 전부.

그렇다고 1394b를 지원하는 케이스를 사자니 적당한 가격에 적당한 제품이 없고, USB3.0/eSATA지원 제품은 저렴하면서도 유용한 제품이 꽤 보였다. 그래서 seagate goFlex 인터페이스를 이용해서 eSATA포트를 만들기로 했다.

준비물은 SATA단자 2개. 보통 하드디스크나 마더보드쪽에 붙는 녀석을 준비한다.
그걸 1:1로 붙여주고, goFlex의 SATA단자에 물려준 뒤 eSATA포트를 다시 연결해서 물려준다.

사용자 삽입 이미지



이제 여기에 eSATA외장하드를 물려서 테스트..

사용자 삽입 이미지


직결했을 땐 70MB이상도 나왔지만, 이정도만해도 USB2.0로 물렸을 때를 훨 뛰어넘는 수치다.

나름 만족중.



문제점 : 휴대형 인터페이스에서는 RAID0, 5에서 제대로 용량을 인식 못하고 있다. RAID1일 때는 제대로 동작.








Creative Commons License
2011/07/28 21:24 2011/07/28 21:24

Direct3D 에서 라이팅을 사용하려면 1개 또는 여러개의 라이트를 작성해야합니다. 어떤 색이 지오메트리 오브젝트를 조사할 것인가를 결정하려면 지오메트리 오브젝트를 렌더링할 매터리얼을 작성할 필요가 있습니다. 신을 렌더링하기 전에 Lights 샘플 오브젝트는 1개의 매터리얼과 1개의 디렉셔널 라이트를 설정하는 애플리케이션 정의 함수인 SetupLights 를 호출합니다.


매터리얼 작성

매터리얼은 라이트가 조사될 때에 지오메트리 오브젝트의 서피스에 반사할 색을 정의합니다. 다음 코드는 D3DMATERIAL9  구조체를 사용해 황색의 매터리얼을 작성합니다.

D3DMATERIAL9 mtrl;
ZeroMemory( &mtrl, sizeof(mtrl) );
mtrl.Diffuse.r = mtrl.Ambient.r = 1.0f;
mtrl.Diffuse.g = mtrl.Ambient.g = 1.0f;
mtrl.Diffuse.b = mtrl.Ambient.b = 0.0f;
mtrl.Diffuse.a = mtrl.Ambient.a = 1.0f;
g_pd3dDevice->SetMaterial( &mtrl );

매터리얼의 디퓨즈 색과 앰비엔트 색이 황색으로 설정됩니다. IDirect3DDevice9::SetMaterial 메소드를 호출해서 매터리얼을 신의 렌더링에 사용되는 Direct3D 디바이스에 적용합니다. IDirect3DDevice9::SetMaterial 가 받아들이는 유일한 파라메터는 설정된 매터리얼의 어드레스 입니다. 이 호출이 행해진 뒤 다른 매터리얼을 지정하는 IDirect3DDevice9::SetMaterial 가 호출될 때까지 이 매터리얼을 사용해 모든 프리머티브가 렌더링 됩니다.

이것으로 매터리얼이 신에 적용되었습니다. 다음으로 라이트를 작성합니다.


라이트 작성

Direct3D 에서 사용할 수 있는 라이트에는 다음 3종류가 있습니다.

  • 화이트 라이트
  • 디렉셔널 라이트
  • 스팟 라이트

샘플 코드에서는 한쪽 방향으로 라이트를 조사하는 디렉셔널 라이트를 작성합니다. 또, 코드를 사용해 라이트의 방향을 좌우로 움직입니다.

다음 코드는 D3DLIGHT9 구조체를 사용해 디렉셔널 라이트를 작성합니다.

D3DXVECTOR3 vecDir;
D3DLight9 light;
ZeroMemory( &light, sizeof(light) );
light.Type = D3DLIGHT_DIRECTIONAL;

다음 코드는 이 라이트의 디퓨즈 색을 흰색으로 설정합니다.

light.Diffuse.r = 1.0f;
light.Diffuse.g = 1.0f;
light.Diffuse.b = 1.0f;

다음 코드는 라이트의 방향을 원형으로 회전시킵니다.

vecDir = D3DXVECTOR3(cosf(timeGetTime()/360.0f),
                     0.0f,
                     sinf(timeGetTime()/360.0f) );
D3DXVec3Normalize( (D3DXVECTOR3*)&light.Direction, &vecDir );

D3DXVec3Normalize 을 호출해서 라이트의 방향을 결정하려고 사용되는 방향 백터를 정규화합니다.

범위로는 Direct3D 에 라이트의 이펙트가 미치는 범위를 지정합니다. 이 멤버는 디렉셔널 라이트에는 영향주지 않습니다. 다음 코드는 이 라이트에 1000단위의 범위를 할당합니다.

light.Range = 1000.0f;

다음 코드는 IDirect3DDevice9::SetLight 를 호출해 Direct3D 디바이스에 라이트를 할당합니다.

g_pd3dDevice->SetLight( 0, &light );

IDirect3DDevice9::SetLight 가 받아들인 최초의 파라메터는 라이트가 할당된 인덱스 입니다. 이미 라이트가 그 장소에 있는 경우는 새로운 라이트로 덮어씁니다. 2번째의 파라메터는 라이트를 정의하는 구조체로의 포인터입니다. Lights 샘플프로젝트는 이 라이트를 인덱스 0으로 둡니다.

다음 코드는 IDirect3DDevice9::LightEnable 를 호출해 라이트를 유효화 합니다.

g_pd3dDevice->LightEnable( 0, TRUE);

IDirect3DDevice9::LightEnable 가 받아들이는 최초의 파라메터는 유효하 라이트의 인덱스입니다. 부울 값인 두번째 파라메터는 라이트를 온(TRUE)할지 오프(FALSE)할지 결정합니다. 위 샘플 코드에서는 인덱스 0인 라이트는 온으로 되어있습니다.

다음 코드는 IDirect3DDevice9::SetRenderState 를 호출해 Direct3D 에 라이트를 렌더링 시킵니다.

g_pd3dDevice->SetRenderState( D3DRS_LIGHTING, TRUE );

IDirect3DDevice9::SetRenderState 가 받아들이는 최초 두개의 파라메터는 변경할 디바이스 스테이트 변수와 그것에 설정할 값입니다. 이 코드 샘플은 D3DRS_LIGHTING 디바이스 변수를 TRUE 로 설정합니다. 이것에는 라이트의 렌더링을 유효화 하는 이펙트가 있습니니다.

이 코드 샘플의 마지막 순서는 다시 IDirect3DDevice9::SetRenderState 를 호출해 앰비언트 라이팅을 온으로 합니다.

g_pd3dDevice->SetRenderState( D3DRS_AMBIENT, 0x00202020 );

위의 코드에서는 D3DRS_AMBIENT 디바이스 변수는 라이트 그레이 (0x00202020) 로 설정되어있습니다. 앰비언트 라이팅은 지정된 색으로 모든 오브젝트를 비춥니다.

라이팅과 매터리얼에 대해 자세한 것은「라이팅과 매터리얼 (Direct3D 9)」을 참조해 주세요.

이 튜토리얼에서는 라이팅과 매터리얼을 사용하는 방법을 나타냈습니다.「튜토리얼 5:텍스쳐 맵의 사용」에서 텍스쳐를 서페이스에 추가하는 방법을 다룹니다.

Creative Commons License
2011/07/12 18:50 2011/07/12 18:50

Direct3D 라이트로 3D 오브젝트가 보다 리얼하게 보일 수 있게 되었습니다. 신의 각 지오메트리 오브젝트는 사용된 장소와 라이트의 종류를 베이스로 해서 라이트가 조사됩니다. 이 튜토리얼의 샘플 코드에서는 라이트와 매터리얼에 대해서 설명합니다.

[DX9] 4.라이트의 작성과 사용 1 - 신 지오메트리 초기화


라이트를 사용하는 요건의 하나로 각 서피스에 법선이 포함되도록 할 필요가 있습니다. Lights 샘플 프로젝트에서는 새로운 커스텀 정점 타입을 사용합니다. 새로운 커스텀 정점형식에는 3D 위치와 서피스 법선을 포함합니다. 서피스 법선은 내부에서 Direct3D가 라이트의 계산을 하는데 사용됩니다.

struct CUSTOMVERTEX
{
    D3DXVECTOR3 position; // The 3D position for the vertex.
    D3DXVECTOR3 normal;   // The surface normal for the vertex.
};
// Custom flexible vertex format (FVF).
#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ|D3DFVF_NORMAL)

이것으로 바른 벡터 형식이 정의 되었습니다. Light 샘플 프로젝트에서는 원기둥을 작성하는 애플리케이션 정의 함수인 InitGeometry 를 호출합니다. 처음에는 원기둥의 포인트를 격남한 정점 버퍼를 작성합니다. 다음 샘플 코드에 그것을 표시했습니다.

// Create the vertex buffer.
if( FAILED( g_pd3dDevice->CreateVertexBuffer( 50*2*sizeof(CUSTOMVERTEX),
                                           0 /*Usage*/, D3DFVF_CUSTOMVERTEX,
                                           D3DPOOL_DEFAULT, &g_pVB, NULL ) ) )
    return E_FAIL;

다음에는 정점 버퍼를 원기둥의 포인트로 묻습니다. 다음 샘플코드에서는 각 포인트가 위치와 법선으로 정의 되어있습니다.

CUSTOMVERTEX* pVertices;
if( FAILED( g_pVB->Lock( 0, 0, (void**)&pVertices, 0 ) ) ) return E_FAIL;

for( DWORD i=0; i<50; i++ )
{
    FLOAT theta = (2*D3DX_PI*i)/(50-1);
    pVertices[2*i+0].position = D3DXVECTOR3( sinf(theta),-1.0f, cosf(theta) );
    pVertices[2*i+0].normal   = D3DXVECTOR3( sinf(theta), 0.0f, cosf(theta) );
    pVertices[2*i+1].position = D3DXVECTOR3( sinf(theta), 1.0f, cosf(theta) );
    pVertices[2*i+1].normal   = D3DXVECTOR3( sinf(theta), 0.0f, cosf(theta) );
}

http://ko.wikipedia.org/wiki/%EC%82%BC%EA%B0%81%ED%95%A8%EC%88%98

앞의 샘플코드를 사용해 정점 버퍼를 원기둥의 정점으로 묻으면 정점 버퍼는 렌더링 할 수 있게 됩니다.
다만, 이 신의 매터리얼과 라이트는 원기둥을 렌더링하기 전에 미리 설정해둘 필요가 있습니다.
이것에 대해서는「2 - 매터리얼과 라이트 설정」에서 설명합니다.

Creative Commons License
2011/07/12 18:44 2011/07/12 18:44

사영 트랜스폼 행렬은 지오메트리를 3D 뷰 공간으로부터 2D뷰포트 공간으로 변환하는 방법을 정의하고 있습니다.

다음 코드는 사영 트랜스폼 행렬을 작성해 Direct3D 디바이스에 대해 현재의 사영 트랜스폼을 설정합니다.

D3DXMATRIX matProj;
D3DXMatrixPerspectiveFovLH( &matProj, D3DX_PI/4, 1.0f, 1.0f, 100.0f );
g_pd3dDevice->SetTransform( D3DTS_PROJECTION, &matProj );

첫번째로 D3DXMatrixPerspectiveFovLH 를 불러 사영 행렬을 셋업합니다. 첫번째 파라메터는 연산의 결과가 되는 D3DXMATRIX 구조체로의 포인터입니다. 두번째 파라메터는 시야를 정의하고 있습니다. 이것으로 먼곳에 있는 오브젝트일수로 작게 보이도록 됩니다. 일반적인 시야는 1/4pi 입니다. 샘플에서도 이것을 사용하고 있습니다. 세번째 파라메터는 아스펙트 비를 정의하고 있습니다. 샘플에서는 전형적인 아스펙트 비 값인 1을 사용하고 있습니다. 네번째와 다섯번째 파라메터는 전방 클립면과 후방 클립면을 정의합니다. 이것들에 의해 지오메트리가 렌더링 되지 않게 되는 거리를 정의합니다. Matrices 샘플 프로젝트에서는 전방 클립면을 1로 후방 클립면을 100으로 설정했습니다.

다음에는 IDirect3DDevice9::SetTransform 를 호출해 Direct3D 디바이스에 대한 트랜스폼을 적용합니다.IDirect3DDevice9::SetTransform 에 넘기는 첫번째 파라메터에 의해 설정된 트랜스폼을 Direct3D에 지시합니다. 이 샘플에서는 D3DTS_PROJECTION 플래그를 사용해서 설정할 필요가 있는 사영 트랜스폼을 지정합니다. 두번째 파라메터는 현재의 트랜스폼으로 설정된 행렬로의 포인터입니다.

사영 트랜스폼에 대한 자세한 것은 「사영 트랜스폼 (Direct3D 9)」을 참조해 주세요.

이 튜토리얼에서는 행렬을 사용하는 방법을 표시했습니다.「튜토리얼 4:라이트의 작성과 사용」에서는 리얼리티를 높여주기 위한 신에 라이트를 추가하는 방법을 다뤄 보겠습니다.

Creative Commons License
2011/07/12 14:14 2011/07/12 14:14

뷰 트랜스폼 행렬은 뷰의 위치와 회전을 정의합니다. 뷰 행렬은 신에 대해서 사용되는 카메라 입니다.

다음 코드는 뷰 트랜스폼 행렬을 작성해 Direct3D 디바이스에 대한 현재의 뷰 트랜스폼을 설정합니다.

D3DXVECTOR3 vEyePt   ( 0.0f, 3.0f,-5.0f );
D3DXVECTOR3 vLookatPt( 0.0f, 0.0f, 0.0f );
D3DXVECTOR3 vUpVec   ( 0.0f, 1.0f, 0.0f );
D3DXMATRIXA16 matView;
D3DXMatrixLookAtLH( &matView, &vEyePt, &vLookatPt, &vUpVec );
g_pd3dDevice->SetTransform( D3DTS_VIEW, &matView );

처음에는 D3DXMatrixLookAtLH 를 호출해 뷰 행렬을 정의합니다. 첫번째 파라메터는 연산의 결과가 되는 D3DMATRIX 구조체로의 포인터입니다. 두번째, 세번째, 네번째 파라메터는 각각 시점(eye point), 주시점(look-at point), "위쪽(up)" 방향을 정의 합니다.  여기에서 시점은 z축에 따라 5단위(unit) 복귀, 3단위 상승하도록 설정되어있습니다. 주시점은 원점으로 설정되어있습니다. "위쪽" 방향은 y 방향으로 정의 되어있습니다.

다음에는 IDirect3DDevice9::SetTransform 를 호출해 Direct3D 디바이스에 대한 뷰 트랜스폼을 설정합니다. IDirect3DDevice9::SetTransform 에 넘긴 첫번째 파라메터에 의해 설정한 트랜스폼을 Direct3D에 지시합니다. 이 샘플에서는 D3DTS_VIEW 플래그를 사용해 설정할 필요가 있는 뷰 트랜스폼을 지정합니다. 두번째 파라메터는 현재의 트랜스폼으로 설정된 행렬로의 포인터입니다.

뷰 트랜스폼의 자세한 사항은 「뷰 트랜스폼 (Direct3D 9)」을 참조해 주세요.

신에 대한 월드 트랜스폼을 정의하면 사영 트랜스폼 행렬(projection transform matrix)을 사용할 수 있게 됩니다. 이 경우도 트랜스폼을 정의하는 순서는 중요하지 않습니다. 다만, Direct3D 는 다음 순서로 신에 행렬을 적용합니다.

  1. 월드(World) 
  2. 뷰 (View)
  3. 사영 (Projection)

사영 트랜스폼 행렬의 정의에 대해서는「 3 - 사영 트랜스폼 행렬 정의」를 참조해 주세요.

Creative Commons License
2011/07/06 17:55 2011/07/06 17:55

이 튜토리얼에서는 행렬의 개념을 소개하고, 행렬의 사용방법을 보여줍니다. Vertices 샘플 프로젝트에서는 2D의 정점을 렌더링하고 삼각형을 드로우했습니다. 그리고, 이 튜토리얼에서는 3D 정점의 트랜스폼을 처리합니다. 행렬은 카메라와 뷰포트의 셋업에도 사용됩니다.

Matrices 샘플 프로젝트에서는 지오메트리의 렌더링을 실행하기 전에 애플리케이션 정의의 SetupMatrices 함수를 호출해 3D 삼각형의 렌더링에 사용하는 행렬 트랜스폼의 작성과 정의를 실행합니다. 이들 타입의 트랜스폼은 통상 3D 신의 경우에 설정됩니다. 이들 일반적인 각각의 트랜스폼을 작성하는 것을 다루도록 하겠습니다.


==========================
[DX9] 3.행렬의 사용방법 1 - 월드 트랜스폼 행렬 정의

월드 트랜스폼 행렬에서는 3D모델 공간에서 지오메트리의 평행이동, 스케일링, 회전을 실행하는 방법을 정의합니다.

다음의 코드에서는 삼각형을 y축 회전으로 회전 시킨 뒤 Direct3D 디바이스에 대한 현재의 월드 트랜스폼을 설정합니다

D3DXMATRIX matWorld;
D3DXMatrixRotationY( &matWorld, timeGetTime()/150.0f );
g_pd3dDevice->SetTransform( D3DTS_WORLD, &matWorld );

처음에는 D3DXMatrixRotationY 메소드를 호출해 삼각형을 y축 회전으로 회전시킵니다. 첫번째 파라메터는 연산의 결과가 되는 3DXMATRIX 구조체로의 포인터입니다. 두번째 파라메타는 회전의 각도(라디언 단위)입니다.

다음은, IDirect3DDevice9::SetTransform 을 호출해 Direct3D 디바이스에 대한 월드 트랜스폼을 정의합니다. IDirect3DDevice9::SetTransform 에 넘긴 첫번째 파라메터에 의해 설정한 트랜스폼을  Direct3D 에 지시합니다. 이 샘플에서는 D3DTS_WORLD 마크로를 사용해 월드 트랜스폼의 설정이 필요하다는 것을 지정합니다. 두번째 파라메터는 현재의 트랜스폼으로 설정된 행렬로의 포인터입니다.

월드 트랜스폼의 자세한 사항에 대해서는 「월드 트랜스폼 (Direct3D 9)」을 참조해 주세요.

신에 대한 월드 트랜스폼을 정의하면 뷰 트랜스폼 행렬을 사용할 수있게 됩니다. 이 경우도 트랜스폼을 정의하는 순서는 중요치 않습니다. 다만, Direct3D에서는 다음 순서로 신에 행렬을 적용합니다.

  1. 월드(World)
  2. 뷰(View) 
  3. 사영(Projection)

뷰 트랜스폼 행렬의 정의에 대해서는「2 - 뷰 트랜스폼 행렬의 정의」를 참조해 주십시오.

Creative Commons License
2011/07/06 17:28 2011/07/06 17:28

이것으로 정점 버퍼에 정점이 격납되었습니다. 다음은 표시를 렌더링합니다. 표시의 렌더링에서는 먼저 백 버퍼를 클리어 해 청색으로 하고 그 다음 BeginScene 을 호출합니다.

g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,255), 1.0f, 0L );
g_pd3dDevice->BeginScene();

정점 버퍼로부터 정점 데이터를 렌더링 하려면 몇 단계를 거칩니다. 우선 스트림 소스를 설정합니다. 이 때 스트림 0을 사용합니다. 스트림 소스는 IDirect3DDevice9::SetStreamSource 를 호출해서 지정합니다.

g_pd3dDevice->SetStreamSource( 0, g_pVB, 0, sizeof(CUSTOMVERTEX) );

첫번째 파라메터는 스트림 번호, 두번째 파라메터는 정점 버퍼로의 포인터 입니다. 세번째 파라메터는 스트림의 선두로부터 정점 데이터의 선두까지의 오프셋입니다. 이 예에서는 0입니다. 마지막 파라메터는 정점 선언의 각요소의 바이트 수입니다.

다음은 IDirect3DDevice9::SetFVF 를 호출해 고정기능의 정점 쉐이더를 식별합니다. 완전한 커스텀 정점 쉐이더는 고도의 토픽입니다만 여기서의 정점 쉐이더는 간단한 플렉서블 정점 포맷(FVF) 코드에 불과합니다. 다음 샘플 코드는 FVF 코드를 설정하고있습니다.

g_pd3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX );

SetFVF 의 유일한 파라메터가 정점 데이터 레이아웃을 정의하는 고정 정점 함수 코드입니다.

다음은 아래의 샘플 코드에 나오는 것처럼 IDirect3DDevice9::DrawPrimitive 를 사용해 정점 버퍼의 정점을 렌더링 합니다.

g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, 1 );

DrawPrimitive 가 받아들이는 1번째의 파라메터는 Direct3D에 드로우하는 프리머티브의 종류를 지시하는 플래그입니다. 이 샘플에서는 D3DPT_TRIANGLELIST 플래그를 사용해 삼각형의 리스트를 지정합니다. 두번째 파라메터는 처음 로드할 정점의 인덱스입니다. 세번째 파라메터는 드로우할 프리머티브의 수를 나타냅니다. 이 샘플에서는 1개의 삼각형만 드로우하므로 이 값은 1이 설정됩니다.

각종 프리머티브의 자세한 내용에 대해서는 「프리머티브」를 참조해 주십시오.

마지막으로 신을 종료한 후 백 버퍼를 프론트 버퍼에 할당합니다. 이 예를 다음 코드에 나타냈습니다.

g_pd3dDevice->EndScene();
g_pd3dDevice->Present( NULL, NULL, NULL, NULL );

백 버퍼를 프론트 버퍼에 할당하면 클라이언트 윈도우에 3개의 다른 컬러의 포인터를 가진 삼각형이 표시됩니다.

이 튜토리얼에서는 정점을 사요해서 지오메트릭 쉐이프를 렌더링하는 방법을 다뤘습니다.「튜토리얼 3: 행렬의 사용방법」에서 행렬의 컨셉과 그 사용방법을 소개합니다.

Creative Commons License
2011/07/04 09:46 2011/07/04 09:46

커스텀 정점 포맷이 정의 되면 다음은 정점을 초기화 합니다. Vertices 샘플 프로젝트에서는 필요한 Direct3D 오브젝트를 작성한 후에 애플리케이션 정의 함수인 InitVB를 호출해 이것을 실행합니다. 다음 샘플 코드는 3개의 커스텀 정점의 값을 초기화 합니다.

CUSTOMVERTEX vertices[] =
{
    { 150.0f,  50.0f, 0.5f, 1.0f, 0xffff0000, }, // x, y, z, rhw, color
    { 250.0f, 250.0f, 0.5f, 1.0f, 0xff00ff00, },
    {  50.0f, 250.0f, 0.5f, 1.0f, 0xff00ffff, },
};

상기 샘플 코드에서는 3개의 정점을 3각형의 포인트로 채우고 각 정점이 방사하는 컬러를 지정합니다. 제1포인트는  (150, 50)이고 컬러는 빨강(0xffff0000)입니다. 제2포인트는(250, 250)이고 컬러는 초록(0xff00ff00)입니다. 제3포인트는 (50, 250)이고 컬러는 청록(0xff00ffff)입니다. 이들 포인트는 각각 심도치는 0.5, RHW(Reciprocal of the W coordinate from the Homogeneous point;동차 좌표 w 성분의 역수)는 1.0입니다.

다음은 아래의 샘플코드에 나타낸 것처럼 IDirect3DDevice9::CreateVertexBuffer 를 호출해 정점 버퍼를 작성합니다.

if( FAILED( g_pd3dDevice->CreateVertexBuffer( 3*sizeof(CUSTOMVERTEX),
         0 /*Usage*/, D3DFVF_CUSTOMVERTEX, D3DPOOL_DEFAULT, &g_pVB, NULL ) ) )
    return E_FAIL;

IDirect3DDevice9::CreateVertexBuffer 의 최초 두개의 파라메터는 Direct3D 에 새로운 정점 버퍼의 필요 사이즈와 용도를 지시합니다. 다음 2개의 파라메터는 새로운 버퍼의 벡터 포맷과 메모리 위치를 지정합니다. 여기서는 벡터 포맷은  D3DFVF_CUSTOMVERTEX 으로 샘플 코드가 이전에 지정한 플렉서블 정점 포맷 (FVF) 입니다. D3DPOOL_DEFAULT 플래그는 Direct3D 에 이 정점 버퍼에 최적의 메모리를 할당해 정점 버퍼를 작성하도록 지시합니다. 마지막 파라메터는 작성하는 버퍼의 어드레스입니다.

정점 버퍼의 작성 후 다음 샘플 코드에 나온 것처럼 커스텀 정점 데이터로 그것을 채웁니다.

VOID* pVertices;
if( FAILED( g_pVB->Lock( 0, sizeof(vertices), (void**)&pVertices, 0 ) ) )
    return E_FAIL;

memcpy( pVertices, vertices, sizeof(vertices) );

g_pVB->Unlock();

우선 IDirect3DVertexBuffer9::Lock 을 호출해 정점 버퍼를 록합니다. 첫번째 파라메터는 록할 정점 데이터의 오프셋(바이트 단위)입니다. 두번째 파라메터는 록할 정점 데이터의 사이즈(바이트 단위)입니다. 세번째 파라메터는 BYTE 포인터의 어드레스로 정점 데이터로 포인터를 격납합니다. 4번째 파라메터는 정점 버퍼에 데이터의 록 방법을 지시합니다.

그 다음 memcpy 를 사용해 정점은 정점 버퍼에 복사됩니다. 정점 버퍼에 정점이 읽어들여지면  IDirect3DVertexBuffer9::Unlock 을 호출해 정점 버퍼의 록을 해제합니다. 정점 버퍼는 디바이스 메모리 내에 존재할 가능성이 있으므로 이 록, 그리고 록 해제의 메카니즘이 필요합니다.

이것으로 정점 버퍼에 정점이 격납됩니다. 다음은「 3 - 표시의 렌더링」에서 표시를 렌더링 하는 것을 다룹니다.

Creative Commons License
2011/07/04 09:27 2011/07/04 09:27
사용자 삽입 이미지

터미널 열고 killall Dock

문제 해결.
Creative Commons License
2011/07/03 19:15 2011/07/03 19:15

Direct3D로 기술된 애플리케이션에서는 정점을 사용해,지오메트리 쉐이프를 그립니다. 각 3차원(3D) 신에는 이들 지오메트리 쉐이프가 1개 이상 포함되어 있습니다. Vertices 샘플 프로젝트에서는 가장 단순한 쉐이프인 삼각형을 작성해 그것을 렌더링해 표시합니다.

이 튜토리얼에서는 다음 스텝에 따라 정점을 사용해 삼각형을 작성하는 방법을 보여줍니다.

=================
[DX9] 2.정점의 렌더링 1 - 커스텀 정점 타입의 정의

Vertices 샘플 프로젝트는 3개의 정점(vertex; vertices(복수형))을 사용해 2D 삼각형을 렌더링 합니다. 이것은 정점 버퍼(vertex buffer)의 개념, 다시말해 정점을 격납해 렌더링 하기위해 사용되는 Direct3D 오브젝트를 도입하고 있습니다. 정점의 정의하는 방법은 다양하며, 커스텀 정점 구조체와 대응하는 커스텀 플렉서블 정점 포맷(FVF)을 지정하는 등 다양한 방법이 있습니다. Vertices 샘플 프로젝트의 정점 포맷을 다음 샘플 코드에 나타냈습니다.

struct CUSTOMVERTEX
{
    FLOAT x, y, z, rhw; // The transformed position for the vertex.
    DWORD color;        // The vertex color.
};

위의 구조체는 커스텀 타입의 포맷을 지정하고 있습니다. 다음은 버퍼 내의 정점 내용을 나타내는 FVF을 정의 하는 것입니다. 다음 샘플 코드는 위에서 작성된 커스텀 정점 타입에 대응하는 FVF를 정의하고 있습니다.

#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZRHW|D3DFVF_DIFFUSE)

D3DFVF 는 어떤 커스텀 정점 타입이 사용됐나를 나타냅니다. 상기 샘플 코드에는 D3DFVF_XYZRHW 플래그와 D3DFVF_DIFFUSE 플래그를 사용하고 있습니다. 이 플래그들은, 커스텀 정점 타입이 트랜스폼된 포인트와 그에 따른 컬러 성분을 가졌다는 것을 정점 버퍼에 통지 합니다.

여기서 커스텀 벡터 포맷과 FVF가 지정됩니다. 다음은 「2 - 정점 버퍼의 설정」으로 정점 버퍼를 정점으로 채우는 것 입니다.

주의
Vertices 샘플 프로젝트의 정점은 트랜스폼 되어있습니다. 다시말해, 이미 2D 윈도우 좌표화 되어있습니다. 이것은 포인트 (0,0)이 좌상측 모서리에 위치하며 X축 방향으로 증가하는 것은 오른쪽으로 향하는 것, Y축 방향으로 증가하는 것은 아래로 향한다는 것을 의미합니다. 또, 이것들의 정점은 강조 표시(lit) 되어있습니다. 다시말해 Direct3D 라이팅은 사용하지 않습니다만, 각각 컬러가 지정되어있습니다.
Creative Commons License
2011/07/02 18:19 2011/07/02 18:19

실행중의 몇몇 포인트에서 애플리케이션을 셧 다운할 필요가 있습니다. DirectX 애플리케이션을 셧 다운하면 애플리케이션 윈도우가 파기될뿐 아니라 애플리케이션이 사용하고 있는 DirectX 오브젝트가 할당을 해제돼 그들로의 포인터는 무효화 됩니다. CreateDevice 샘플 프로젝트에서는 WM_DESTROY 메시지를 받으면 이 메시지를 처리하기 위해서 애플리케이션 정의 함수의 Cleanup을 호출합니다.
 

VOID Cleanup()
{
    if( g_pd3dDevice != NULL)
        g_pd3dDevice->Release();
    if( g_pD3D != NULL)
        g_pD3D->Release();
}

상기 함수는 오브젝트마다  IUnknown 메소드를 호출해 사용하고 있는 Direct3D 오브젝트의 할당을 해제합니다. 이 튜토리얼은 COM 룰을 따르므로 대부분의 오브젝트의 리퍼런스 카운트는 0이 되어 메모리로부터 자동적으로 소거됩니다.

셧다운 이외에도 데스크 톱의 해상도와 색상수를 변경할 경우 등 통상 실행중에 사용중의 Microsoft Direct3D 오브젝트를 파기해 다시 작성할 필요가 생길 수 있습니다.  그때문에 애플리케이션의 클린 업 코드는 필요에 따라 호출하도록 한 곳에 모아 유지할 것을 추천합니다.

이 튜토리얼에서는 디바이스를 작성하는 방법을 다뤘습니다.「튜토리얼2:정점의 렌더링」에서 정점을 사용해 지오메트릭 쉐이프를 그리는 방법을 알아봅니다.

Creative Commons License
2011/07/02 17:36 2011/07/02 17:36

신을 렌더링해 표시하기 위해 이번 샘플 코드에서는 백 버퍼를 청색으로 클리어해서 백 버퍼의 내용을 프론트 버퍼로 전송해 프론트 버퍼를 화면에 할당합니다.

신을 클리어하려면 IDirect3DDevice9::Clear 메소드를 호출합니다.

// Clear the back buffer to a blue color
g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,255), 1.0f, 0 );

IDirect3DDevice9::Clear 가 받아들인 최초 2개의 파라메터는 Direct3D에 클리어할 사각형(矩形;rect)의 배열의 사이즈와 어드레스를 통지합니다. 사각형의 배열은 클리어할 렌더 타겟 서페이스 상의 영역을 나타내고 있습니다.

일반적으로 렌더 타겟 전체를 커버하는 단일 사각형을 사용합니다. 이것을 실행하려면 첫번째의 파라메터를 0으로, 두번째의 파라메터를 NULL로 설정합니다. 세번째 파라메터는 메소드의 동작을 결정합니다. 렌더 타겟 서페이스(render-target suface), 관련지어진 심도 버퍼(associated depth buffer), 스텐실 버퍼(stencil buffer), 또는 3개의 임의의 조합을 클리어하기 위한 플래그를 지정할 수 있습니다. 이 튜토리얼에서는 심도 버퍼는 사용하지 않습니다. D3DCLEAR_TARGET 이 사용되고 있는 유일한 플래그입니다. 최초 3개의 파라메터는 렌더 타겟, 심도 버퍼, 그리고 스텐실 버퍼의 값의 클리어를 반영하도록 설정됩니다. CreateDevice 샘플 프로젝트에서는 렌더 타겟 서페이스의 클리어 컬러를 청(D3COLOR_XRGB(0,0,255))으로 설정합니다. 마지막 2개의 파라메터는 대응하는 플래그가 존재하지 않으므로 IDirect3DDevice9::Clear 메소드에서는 무시됩니다.

다음의 샘플 코드에 보이는 것처럼 CreateDevice 샘플 프로젝트는 뷰포트를 클리어한 후, Direct3D에 렌더링이 개시된 것을 통지하고 그 뒤 렌더링이 완료된 것을 통지합니다.

// Begin the scene
g_pd3dDevice->BeginScene();

// Rendering of scene objects happens here

// End the scene
g_pd3dDevice->EndScene();

IDirect3DDevice9::BeginScene 과 ID3DXRenderToSurface::EndScene 메소드는 렌더링의 개시 또는 완료를 통지합니다. 이들 메소드를 호출하는 사이에서만 렌더링 메소드를 호출 할 수있습니다. 렌더링 메소드가 실패한 경우에도, 다시 IDirect3DDevice9::BeginScene 를 호출하기 전에 ID3DXRenderToSurface::EndScene 를 호출할 필요가 있습니다.

신이 렌더링되면 IDirect3DDevice9::Present 메소드를 사용해 표시합니다.

g_pd3dDevice->Present( NULL, NULL, NULL, NULL );

최초 2개의 파라메터는 복사할(source) 사각형과 복사될(destination) 사각형입니다. 이 샘플 코드에서는 이 2개의 파라메터를 NULL에 설정하는 것으로 백 버퍼 전체를 프론트 버퍼에 할당하고 있습니다. 3번째 파라메터는 이 프레젠테이션의 소스 윈도우를 설정합니다. 이 파라메터는 NULL에 설정되어있으므로 D3DPRESENT_PARAMETERS의 hWndDeviceWindow 멤버가 사용됩니다. 4번째의 파라메터는 DirtyRegion 파라메터로 일반적으로는 NULL에 설정됩니다.

이 튜토리얼의 마지막 단계로「5 - 셧 다운」에서 애플리케이션을 셧다운 해 봅시다.

Creative Commons License
2011/07/02 15:59 2011/07/02 15:59

애플리케이션 윈도우를 작성하고, Direct3D를 초기화 한 후는 언제라도 신을 렌더링 할 수 있습니다. 통상, Windows 애플리케이션은 각각의 메시지 루프 내에서 시스템 메시지를 모니터하고, 메시지가 큐에 존재하지 않으면 프레임을 렌더링 합니다. 다만, CreateDevice 샘플 프로젝트는 WM_PAINT 메시지가 큐에 들어올 때까지 대기해 애플리케이션에 그 윈도우 전체 또는 일부를 갱신할 필요가 있음을 통지합니다.

// The message loop.
MSG msg; 
while( GetMessage( &msg, NULL, 0, 0 ) )
{
    TranslateMessage( &msg );
    DispatchMessage( &msg );
}

루프가 실행될 때마다 DispatchMessage 는 큐 내의 메시지를 처리할 MsgProc를 호출합니다.
WM_PAINT 가 큐에 들어오면 애플리케이션은 윈도우를 갱신할 애플ㄹ리케이션 정의 함수인 Render를 호출합니다. 이어서 클라이언트 영역 전체를 검증하기위해서 Win32함수ValidateRect 가 불립니다.

메시지 처리 함수의 샘플 코드는 다음과 같습니다.

LRESULT WINAPI MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
    switch( msg )
    {
        case WM_DESTROY:
            PostQuitMessage( 0 );
            return 0;

        case WM_PAINT:
            Render();
            ValidateRect( hWnd, NULL );
            return 0;
    }

    return DefWindowProc( hWnd, msg, wParam, lParam );
}

이것으로 애플리케이션은 시스템 메시지를 처리할 수 있습니다. 다음에는 「 4 - 신의 렌더링과 표시」에서 설명하는 것 처럼 표시를 렌더링 합니다.

© 2009 Microsoft Corporation. All rights reserved.
バージョン: 1734.00

Creative Commons License
2011/07/02 15:37 2011/07/02 15:37

CreateDevice 샘플 프로젝트는 윈도우 작성후에, WinMain 로부터 호출된  InitD3D 애플리케이션 정의함수 중에서 Direct3D 초기화를 실행합니다. 애플리케이션 윈도우의 적성후에는 언제라도, 신을 렌더링하기 위해 사용하는 Direct3D 오브젝트를 초기화 할 수 있습니다. 이 프로세스는 오브젝트를 작성하고 프레젠테이션 파라메터를 설정하고 마지막으로 Direct3D 디바이스를 작성합니다.

Direct3D 오브젝트의 작성 후 IDirect3D9::CreateDevice 메소드를 사용해 디바이스를 작성하고 디바이스, 타입, 모드 등의 열거 할 수 있습니다.

if( NULL == ( g_pD3D = Direct3DCreate9( D3D_SDK_VERSION ) ) )
	return E_FAIL;

Direct3DCreate9 에 넘겨지는 파라메터는 언제나 D3D_SDK_VERSION 뿐입니다. 이것은 바른 헤더 파일이 사용되고 있다는 것을 Direct3D에 통지합니다. 이 값은 헤더 또는 그 외의 변경에 의한 애플리케이션을 다시 빌드할 필요가 생길때마다 인클리멘트됩니다. 버전이 일치하지 않는 경우 Direct3DCreate9은 실패합니다.

D3DPRESENT_PARAMETERS 의 필드를 채워서 3D 애플리케이션의 동작방법을 지정할 수 있습니다. CreateDevice 샘플 프로젝트에서는 Windowed 가 TRUE, SwapEffect가 D3DSWAPEFFECT_DISCARD, BackBufferFormat가 D3DFMT_UNKONWN에 설정됩니다.

D3DPRESENT_PARAMETERS d3dpp; 
ZeroMemory( &d3dpp, sizeof(d3dpp) );
d3dpp.Windowed = TRUE;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;

마지막 순서로 다음 코드의 예에 나타낸 것처럼 IDirect3D9::CreateDevice 메소드를 사용해 Direct3D 디바이스를 작성합니다.

if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
                                  D3DCREATE_SOFTWARE_VERTEXPROCESSING,
                                  &d3dpp, &g_pd3dDevice ) ) )

상기 샘플코드는 D3DADAPTER_DEFAULT 플래그를 사용해서 디폴트 어댑터를 가진 디바이스를 작성합니다. 통상, 시스템은 복수의 그래픽 하드웨어 카드가 인스톨 되어있지 않은 한, 단일 어댑터만을 가집니다. DeviceType 파라메터에 D3DDEVTYPE_HAL을 지정하면, 소프트웨어 디바이스에 의한 하드웨어 디바이스 쪽이 우선됩니다. 이 샘플코드에서는 D3DCREATE_SOFTWARE_VERTEXPROCESSING 를 사용해서, 시스템에 소프트웨어 정점처리를 사용하도록 지시하고 있습니다. D3DCREATE_HARDWARE_VERTEXPROCESSING 를 지정해, 시스템의 하드웨어 정점처리를 사용하도록 하는 경우에는 하드웨어 정점처리 퍼포먼스가 대폭 향상하는 점에 주의해 주십시오.

이것으로 Direct3D 오브젝터는 초기화 되었습니다. 다음에는 「3 - 시스템 메시지의 처리」에서 설명하고 있는 것처럼, 시스템 메시지를 처리하는 메카니즘의 확보를 수행합니다.

Creative Commons License
2011/07/01 23:37 2011/07/01 23:37

Windows 애플리케이션이 실행될 때에 최초로 처리되어야할 것은 유저에게 표시하는 애플리케이션 윈도우를 작성하는 것입니다. 이것을 실행하려면 CreateDevice 샘플 프로젝트의  WinMain 함수로 실행을 개시합니다. 다음의 샘플 코드는 윈도우의 초기화를 실행합니다.

INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR, INT )
{
	// Register the window class.
	WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC, MsgProc, 0L, 0L, 
	GetModuleHandle(NULL), NULL, NULL, NULL, NULL,
	"Direct3D Tutorial", NULL };

	RegisterClassEx( &wc );

	// Create the application's window.
	HWND hWnd = CreateWindow( "Direct3D Tutorial", "Direct3D Tutorial 01: CreateDevice", 
	WS_OVERLAPPEDWINDOW, 100, 100, 300, 300,
	GetDesktopWindow(), NULL, wc.hInstance, NULL );

상기의 샘플코드는 표준 Windows 프로그래밍입니다. 샘플에서는 최초로 "Direct3D Tutorial"이라는 윈도우 클래스를 정의해 등록하고 있습니다. 클래스를 등록한 뒤 샘플 코드는 폭 300픽셀, 높이 300픽셀의 클라이언트 영역을 가지고 등록한 클래스를 사용하는 기본적인 최상위 윈도우를 작성합니다. 이 윈도우에는 메뉴와 자식 윈도우는 없습니다. 샘플에서는 WS_OVERLAPPEDWINDOW 윈도우 스타일을 사용해 윈도우 애플리케이션에 공통의 [최소화], [최대화], 그리고 [닫기] 버튼을 가진 윈도우를 작성합니다.(샘플이 풀스크린 모드로 실행될 경우, 추천되는 윈도우 스타일은 WS_EX_TOPMOST입니다. 이것은 작성된 윈도우를 최상위가 아닌 모든 윈도우 위에 배치해 윈도우가 비 액티브인 경우에도 최상위에 남아있도록 지정합니다.) 윈도우가 작성되면 표준의 Win32함수를 호출해 윈도우 표시를 갱신합니다.

애플리케이션 윈도우가 준비되었으면 「2 - Direct3D의 초기화」에서 설명하는대로 필수 Direct3D 오브젝트의 셋업을 개시할 수 있습니다.

DirectX Software Development Kit / 튜토리얼/ Direct3D 튜토리얼/ 튜토리얼 1: 디바이스의 작성 도움말에서

Creative Commons License
2011/07/01 22:43 2011/07/01 22:43

이 안에 다있음 ㅡㅅ-);

game_bt01.addEventListener(MouseEvent.CLICK,ox_01);
game_bt02.addEventListener(MouseEvent.CLICK,ox_02);
game_bt03.addEventListener(MouseEvent.CLICK,ox_03);
game_bt04.addEventListener(MouseEvent.CLICK,ox_04);

function ox_01(event:MouseEvent) :void {
 game_bt01.alpha = 1;
 stop();
 setTimeout(function() { gotoAndPlay(26); }, 600);

}

function ox_02(event:MouseEvent) :void {
 game_bt02.alpha = 1;
}
function ox_03(event:MouseEvent) :void {
 game_bt03.alpha = 1;
}
function ox_04(event:MouseEvent) :void {
 game_bt04.alpha = 1;
}




Creative Commons License
2011/06/14 11:02 2011/06/14 11:02
사용자 삽입 이미지

휴대 편하고 감도도 좋은 편이나, 물리적인 휠을 100%대체하긴 힘들 것 같다.

휠의 회전 수를 섬세하게 조절해야하는 편집 작업 등에서는 좀 무리인듯.
Creative Commons License
2011/06/10 22:45 2011/06/10 22:45
http://www.insanelymac.com/forum/index.php?showtopic=232183&mode=threaded&pid=1577947


샌디브리지 i7을 사용하는 가상머신에서 MAC OS X 업데이트 후

The CPU has been disabled by the guest operating system. You will need to power off or reset the virtual machine at this point.

에러가 나면 vmx에 다음 줄을 추가해준다.

cpuid.1.eax = "0000:0000:0000:0001:0000:0110:1010:0101"
Creative Commons License
2011/06/01 03:43 2011/06/01 03:43
메뉴버튼 누르고
왼쪽 화살표와 취소키를 동시에 누르고 있는다


다시 메뉴 들어가면 숨겨진 서비스 메뉴 나온다.
Creative Commons License
2011/05/31 12:17 2011/05/31 12:17

(gdb) help

List of classes of commands:


aliases -- Aliases of other commands

breakpoints -- Making program stop at certain points

data -- Examining data

files -- Specifying and examining files

internals -- Maintenance commands

obscure -- Obscure features

running -- Running the program

stack -- Examining the stack

status -- Status inquiries

support -- Support facilities

tracepoints -- Tracing of program execution without stopping the program

user-defined -- User-defined commands


Type "help" followed by a class name for a list of commands in that class.

Type "help" followed by command name for full documentation.

Command name abbreviations are allowed if unambiguous.




===========



(gdb) help all

ni -- Step one instruction

si -- Step one instruction exactly

stepping -- Specify single-stepping behavior at a tracepoint

tp -- Set a tracepoint at a specified line or function or address

tty -- Set terminal for future runs of program being debugged

where -- Print backtrace of all stack frames

ws -- Specify single-stepping behavior at a tracepoint

append binary -- Append target code/data to a raw binary file

append memory -- Append contents of memory to a raw binary file

append value -- Append the value of an expression to a raw binary file

awatch -- Set a watchpoint for an expression

break -- Set breakpoint at specified line or function

catch -- Set catchpoints to catch events

clear -- Clear breakpoint at specified line or function

commands -- Set commands to be executed when a breakpoint is hit

condition -- Specify breakpoint number N to break only if COND is true

delete -- Delete some breakpoints or auto-display expressions

disable -- Disable some breakpoints

enable -- Enable some breakpoints

future-break -- Set breakpoint at expression

hbreak -- Set a hardware assisted  breakpoint

ignore -- Set ignore-count of breakpoint number N to COUNT

rbreak -- Set a breakpoint for all functions matching REGEXP

rwatch -- Set a read watchpoint for an expression

save-breakpoints -- Save current breakpoint definitions as a script

tbreak -- Set a temporary breakpoint

tcatch -- Set temporary catchpoints to catch events

thbreak -- Set a temporary hardware assisted breakpoint

watch -- Set a watchpoint for an expression

append -- Append target code/data to a local file

call -- Call a function in the program

disassemble -- Disassemble a specified section of memory

display -- Print value of expression EXP each time the program stops

dump -- Dump target code/data to a local file

inspect -- Same as "print" command

invoke-block -- Invoke the function associated with the block passed in as the first

mem -- Define attributes for memory region

output -- Like "print" but don't put in value history and don't print newline

print -- Print value of expression EXP

print-object -- Ask an Objective-C object to print itself

printf -- Printf "printf format string"

ptype -- Print definition of type TYPE

restore -- Restore the contents of FILE to target memory

set -- Evaluate expression EXP and assign result to variable VAR

undisplay -- Cancel some expressions to be displayed when program stops

whatis -- Print data type of expression EXP

x -- Examine memory: x/FMT ADDRESS

delete breakpoints -- Delete some breakpoints or auto-display expressions

delete checkpoints -- Delete specified checkpoints

delete display -- Cancel some expressions to be displayed when program stops

delete mem -- Delete memory region

delete tracepoints -- Delete specified tracepoints

disable breakpoints -- Disable some breakpoints

disable display -- Disable some expressions to be displayed when program stops

disable mem -- Disable memory region

disable tracepoints -- Disable specified tracepoints

dump binary -- Write target code/data to a raw binary file

dump ihex -- Write target code/data to an intel hex file

dump memory -- Write contents of memory to a raw binary file

dump srec -- Write target code/data to an srec file

dump tekhex -- Write target code/data to a tekhex file

dump value -- Write the value of an expression to a raw binary file

enable delete -- Enable breakpoints and delete when hit

enable display -- Enable some expressions to be displayed when program stops

enable mem -- Enable memory region

enable once -- Enable breakpoints for one hit

enable tracepoints -- Enable specified tracepoints

add-dsym -- Usage: add-dsym DSYM_FILE

add-kext -- Usage: add-kext KEXTBUNDLE

add-shared-symbol-files -- Load the symbols from shared objects in the dynamic linker's link map

add-symbol-file -- Usage: add-symbol-file FILE ADDR [-s <SECT> <SECT_ADDR> -s <SECT> <SECT_ADDR>

cd -- Set working directory to DIR for debugger and program being debugged

core-file -- Use FILE as core dump for examining memory and registers

directory -- Add directory DIR to beginning of search path for source files

edit -- Edit specified file or function

exec-file -- Use FILE as program for getting contents of pure memory

file -- Use FILE as program to be debugged

fix -- Bring in a fixed objfile

forward-search -- Search for regular expression (see regex(3)) from last line listed

list -- List specified function or line

load -- Dynamically load FILE into the running program

nosharedlibrary -- Unload all shared object library symbols

path -- Add directory DIR(s) to beginning of search path for object files

pwd -- Print working directory

remove-symbol-file -- Usage: remove-symbol-file FILE

reread-symbols -- Usage: reread-symbols

reverse-search -- Search backward for regular expression (see regex(3)) from last line listed

search -- Search for regular expression (see regex(3)) from last line listed

section -- Change the base address of section SECTION of the exec file to ADDR

symbol-file -- Load symbol table from executable file FILE

info address -- Describe where symbol SYM is stored

info all-registers -- List of all registers and their contents

info args -- Argument variables of current stack frame

info auxv -- Display the inferior's auxiliary vector

info breakpoints -- Status of user-settable breakpoints

info catch -- Exceptions that can be caught in the current stack frame

info checkpoints -- Help

info classes -- All Objective-C classes

info common -- Print out the values contained in a Fortran COMMON block

info copying -- Conditions for redistributing copies of GDB

info dcache -- Print information on the dcache performance

info display -- Expressions to display when program stops

info extensions -- All filename extensions associated with a source language

info files -- Names of targets and files being debugged

info float -- Print the status of the floating point unit

info fork -- Help

info frame -- All about selected stack frame

info functions -- All function names

info gc-references -- List the garbage collectors references for a given address

info gc-roots -- List the garbage collector's shortest unique roots to a given address

info handle -- What debugger does when program gets various signals

info interpreters -- List the interpreters currently available in gdb

info line -- Core addresses of the code for a source line

info locals -- Local variables of current stack frame

info mach-port -- Get info on a specific port

info mach-ports -- Get list of ports in a task

info mach-region -- Get information on mach region at given address

info mach-regions -- Get information on all mach region for the current inferior

info mach-task -- Get info on a specific task

info mach-tasks -- Get list of tasks in system

info mach-thread -- Get info on a specific thread

info mach-threads -- Get list of threads in a task

info macro -- Show the definition of MACRO

info malloc-history -- List the stack(s) where malloc or free occurred for the address

info mem -- Memory region attributes

info pid -- Process ID of the program

info plugins -- Show current plug-ins state

info program -- Execution status of the program

info registers -- List of integer registers and their contents

info scope -- List the variables local to a scope

info selectors -- All Objective-C selectors

info set -- Show all GDB settings

info sharedlibrary -- Generic command for shlib information

info signals -- What debugger does when program gets various signals

info source -- Information about the current source file

info sources -- Source files in the program

info stack -- Backtrace of the stack

info symbol -- Describe what symbol is at location ADDR

info target -- Names of targets and files being debugged

info task -- Get information on task

info terminal -- Print inferior's saved terminal status

info thread -- Get information on thread

info threads -- IDs of currently known threads

info tracepoints -- Status of tracepoints

info trampoline -- Resolve function for DYLD trampoline stub and/or Objective-C call

info types -- All type names

info variables -- All global and static variable names

info vector -- Print the status of the vector unit

info warranty -- Various kinds of warranty you do not have

info watchpoints -- Synonym for ``info breakpoints''

flushregs -- Force gdb to flush its register cache (maintainer command)

flushstack -- Force gdb to flush its stack-frame cache (maintainer command)

maintenance -- Commands for use by GDB maintainers

macro define -- Define a new C/C++ preprocessor macro

macro expand -- Fully expand any C/C++ preprocessor macro invocations in EXPRESSION

macro expand-once -- Expand C/C++ preprocessor macro invocations appearing directly in EXPRESSION

macro list -- List all the macros defined using the `macro define' command

macro undef -- Remove the definition of the C/C++ preprocessor macro with the given name

maintenance agent -- Translate an expression into remote agent bytecode

maintenance check-symtabs -- Check consistency of psymtabs and symtabs

maintenance cplus -- C++ maintenance commands

maintenance demangle -- Demangle a C++/ObjC mangled name

maintenance deprecate -- Deprecate a command

maintenance dump-me -- Get fatal error; make debugger dump its core

maintenance dump-packets -- Print the packet log buffer

maintenance i386-prologue-parser -- Run the i386 prologue analyzer on a function

maintenance info -- Commands for showing internal info about the program being debugged

maintenance internal-error -- Give GDB an internal error

maintenance internal-warning -- Give GDB an internal warning

maintenance interval -- Set the report of low-level interval timers

maintenance list-kexts -- List kexts loaded by the kernel (when kernel debugging)

maintenance packet -- Send an arbitrary packet to a remote target

maintenance print -- Maintenance command for printing GDB internal state

maintenance report-interval -- Report the summary values for all the low-level interval timers

maintenance set -- Set GDB internal variables used by the GDB maintainer

maintenance sharedlibrary -- Commands for internal sharedlibrary manipulation

maintenance show -- Show GDB internal variables used by the GDB maintainer

maintenance show-debug-regs -- Set whether to show variables that mirror the x86 debug registers

maintenance space -- Set the display of space usage

maintenance time -- Set the display of time usage

maintenance translate-address -- Translate a section name and address to a symbol

maintenance undeprecate -- Undeprecate a command

compare-sections -- Compare section data on target to the exec file

complete -- List the completions for the rest of the line as a command

create-checkpoint -- Create a checkpoint

load-plugin -- Usage: load-plugin <plugin>

monitor -- Send a command to the remote monitor (remote targets only)

now -- Go to latest original execution line

redo -- Forward to next checkpoint

remote -- Send a command to the remote monitor

rollback -- Roll back to a checkpoint

stop -- There is no `stop' command

undo -- Back to last checkpoint

update -- Re-read current state information from inferior

overlay auto -- Enable automatic overlay debugging

overlay list-overlays -- List mappings of overlay sections

overlay load-target -- Read the overlay mapping state from the target

overlay manual -- Enable overlay debugging

overlay map-overlay -- Assert that an overlay section is mapped

overlay off -- Disable overlay debugging

overlay unmap-overlay -- Assert that an overlay section is unmapped

advance -- Continue the program up to the given location (same form as args for break command)

attach -- Attach to a process or file outside of GDB

continue -- Continue program being debugged

detach -- Detach a process or file previously attached

disconnect -- Disconnect from a target

finish -- Execute until selected stack frame returns

handle -- Specify how to handle a signal

interrupt -- Interrupt the execution of the debugged program

jump -- Continue program being debugged at specified line or address

kdp-detach -- Reset a (possibly disconnected) remote Mac OS X kernel

kdp-kernelversion -- Print the version of a remote Mac OS X kernel

kdp-reattach -- Re-attach to a (possibly connected) remote Mac OS X kernel

kdp-reboot -- Reboot a connected remote Mac OS X kernel

kill -- Kill execution of program being debugged

next -- Step program

nexti -- Step one instruction

run -- Start debugged program

sharedlibrary -- Commands for shared library manipulation

signal -- Continue program giving it signal specified by the argument

start -- Run the debugged program until the beginning of the main procedure

step -- Step program until it reaches a different source line

stepi -- Step one instruction exactly

sym-dump -- Print the contents of the specified SYM-format symbol file

target -- Connect to a target machine or process

thread -- Use this command to switch between threads

until -- Execute until the program reaches a source line greater than the current

set annotate -- Set annotation_level

set architecture -- Set architecture of target

set args -- Set argument list to give program being debugged when it is started

set auto-raise-load-levels -- Set if GDB should raise the symbol loading level on all frames found in backtraces

set auto-solib-add -- Set autoloading of shared library symbols

set backtrace -- Set backtrace specific variables

set breakpoint -- Breakpoint specific settings

set call-po-at-unsafe-times -- Set whether to override the check for potentially unsafe situations before calling print-object

set can-use-hw-watchpoints -- Set debugger's willingness to use watchpoint hardware

set case-sensitive -- Set case sensitivity in name search

set charset -- Set the host and target character sets

set check -- Set the status of the type/range checker

set checkpointing -- Set automatic creation of checkpoints

set coerce-float-to-double -- Set coercion of floats to doubles when calling functions

set complaints -- Set max number of complaints about incorrect symbols

set confirm -- Set whether to confirm potentially dangerous operations

set cp-abi -- Set the ABI used for inspecting C++ objects

set darwin_kernel-debug-level -- Set level of verbosity for Darwin Kernel debugging information

set dcache-linesize-power -- Set the power for the cache line size

set debug -- Generic command for setting gdb debugging flags

set debug-file-directory -- Set the directory where separate debug symbols are searched for

set debugvarobj -- Set varobj debugging

set demangle-style -- Set the current C++ demangling style

set disable-aslr -- Set if GDB should disable shared library address randomization

set disable-inferior-function-calls -- Set disabling of gdb from running calls in the debugee's context

set disassembly-flavor -- Set the disassembly flavor

set disassembly-name-length -- Set the maximum length of characters to print in the symbol name in disassembly output

set download-write-size -- Set the write size used when downloading a program

set editing -- Set editing of command lines as they are typed

set endian -- Set endianness of target

set environment -- Set environment variable value to give the program

set exception-catch-type-regexp -- Set exception regexp

set exception-throw-type-regexp -- Set throw regexp

set exec-argv0 -- Set the value of argv[0] to be passed to the target executable

set exec-done-display -- Set notification of completion for asynchronous execution commands

set exec-pathname -- Set the pathname to be used to start the target executable

set extension-language -- Set mapping between filename extension and source language

set follow-fork-mode -- Set debugger response to a program call of fork or vfork

set forking-checkpoints -- Set forking to create checkpoints

set function-end-absolute -- Set if N_FUN end-of-function symbols use absolute addresses on non-GCC files

set gnutarget -- (Set the current BFD target

set height -- Set number of lines gdb thinks are in a page

set history -- Generic command for setting command history parameters

set host-charset -- Set the host character set

set inferior-auto-start-cfm -- Set if GDB should enable debugging of CFM shared libraries

set inferior-auto-start-dyld -- Set if GDB should enable debugging of dyld shared libraries

set inferior-bind-exception-port -- Set if GDB should bind the task exception port

set inferior-ptrace -- Set if GDB should attach to the subprocess using ptrace ()

set inferior-ptrace-on-attach -- Set if GDB should attach to the subprocess using ptrace ()

set inferior-tty -- Set terminal for future runs of program being debugged

set inform-optimized -- Set gdb informing you when you are debugging optimized code

set inlined-stepping -- Set the ability to maneuver through inlined function calls as if they were normal calls

set input-radix -- Set default input radix for entering numbers

set interpreter -- Set the interpreter for gdb

set kdp-debug-level -- Set level of verbosity for KDP debugging information

set kdp-default-host-type -- Set CPU type to be used for hosts providing incorrect information (powerpc/ia32)

set kdp-default-port -- Set default UDP port on which to attempt to contact KDP

set kdp-exception-sequence-number -- Set current sequence number for KDP exception transactions

set kdp-retries -- Set number of UDP retries for (non-exception) KDP transactions

set kdp-sequence-number -- Set current sequence number for KDP transactions

set kdp-timeout -- Set UDP timeout in milliseconds for (non-exception) KDP transactions

set kext-symbol-file-path -- Set the directory where kextutil-generated sym files are searched for

set language -- Set the current source language

set let-po-run-all-threads -- Set whether po should run all threads if it can't  safely run only the current thread

set listsize -- Set number of source lines gdb will list by default

set locate-dsym -- Set locate dSYM files using the DebugSymbols framework

set logging -- Set logging options

set lookup-objc-class -- Set whether we should attempt to lookup Obj-C classes when we resolve symbols

set mach-o-process-exports -- Set if GDB should process indirect function stub symbols from object files

set max-checkpoints -- Set the maximum number of checkpoints allowed (-1 == unlimited)

set max-user-call-depth -- Set the max call depth for user-defined commands

set mi-show-protections -- Set whether to show "public"

set mi-timings-enabled -- Set whether timing information is displayed for mi commands

set minimal-signal-handling -- Set whether we run with a minimal signal handling set

set mmap-string-tables -- Set if GDB should use mmap() to read STABS info

set mmap-symbol-files -- Set if GDB should use mmap() to read from external symbol files

set objc-class-method-limit -- Set the maximum number of class methods we scan before deciding we are looking at an uninitialized object

set objc-exceptions-interrupt-hand-call-fns -- Set whether hitting an ObjC exception throw interrupts a function called by hand from the debugger

set objc-non-blocking-mode -- Set whether all inferior function calls should use the objc non-blocking mode

set objc-version -- Set the current Objc runtime version

set opaque-type-resolution -- Set resolution of opaque struct/class/union types (if set before loading symbols)

set os -- Set operating system

set osabi -- Set OS ABI of target

set output-radix -- Set default output radix for printing of values

set overload-resolution -- Set overload resolution in evaluating C++ functions

set pagination -- Set state of pagination

set pathname-substitutions -- Set string substitutions to be used when searching for source files

set print -- Generic command for setting how things print

set prompt -- Set gdb's prompt

set radix -- Set default input and output number radices

set read-type-psyms -- Set if we should create partial symbols for types

set remote -- Remote protocol specific variables

set remoteaddresssize -- Set the maximum size of the address (in bits) in a memory packet

set remotebaud -- Set baud rate for remote serial I/O

set remotebreak -- Set whether to send break if interrupted

set remotecache -- Set cache use for remote targets

set remotedevice -- Set device for remote serial I/O

set remotelogbase -- Set numerical base for remote session logging

set remotelogfile -- Set filename for remote session recording

set remotetimeout -- Set timeout limit to wait for target to respond

set remotewritesize -- Set the maximum number of bytes per memory write packet (deprecated)

set restore -- Set restore specific command settings

set scheduler-locking -- Set mode for locking scheduler during execution

set serial -- Set default serial/parallel port configuration

set sharedlibrary -- Generic command for setting shlib settings

set shlib-path-substitutions -- Set path substitutions to be used when loading shared libraries

set show_breakpoint_hit_counts -- Set if GDB should show breakpoint hit counts

set solib-absolute-prefix -- Set prefix for loading absolute shared library symbol files

set solib-search-path -- Set the search path for loading non-absolute shared library symbol files

set start-with-shell -- Set if GDB should use shell to invoke inferior (performs argument expansion in shell)

set step-mode -- Set mode of the step operation

set stop-on-solib-events -- Set stopping for shared library events

set struct-convention -- Set the convention for returning small structs

set subsystem-checkpointing -- Set checkpointing of subsystems

set symbol-reloading -- Set dynamic symbol table reloading multiple times in one run

set target-charset -- Set the target character set

set target-function-call-timeout -- Set a timeout for gdb issued function calls in the target program

set trust-readonly-sections -- Set mode for reading from readonly sections

set unwindonsignal -- Set unwinding of stack if a signal is received while in a call dummy

set use-array-stride -- Set if GDB should honor the 'stride' parameter of array types

set use-eh-frame-info -- Set if GDB should use the EH frame/DWARF CFI information to backtrace

set variable -- Evaluate expression EXP and assign result to variable VAR

set varobj-print-object -- Set varobj to construct children using the most specific class type

set varobj-runs-all-threads -- Set to run all threads when evaluating varobjs

set verbose -- Set verbosity

set watchdog -- Set watchdog timer

set width -- Set number of characters gdb thinks are in a line

set write -- Set writing into executable and core files

sharedlibrary add-symbol-file -- Add a symbol file

sharedlibrary apply-load-rules -- Apply the current load-rules to the existing shared library state

sharedlibrary cache-symfile -- Generate persistent caches of symbol files for a specified executable

sharedlibrary cache-symfiles -- Generate persistent caches of symbol files for the current executable state

sharedlibrary remove-symbol-file -- Remove a symbol file

sharedlibrary section-info -- Get the section info for a library (given by the index from "info sharedlibrary")

sharedlibrary set-load-state -- Set the load level of a library (given by the index from "info sharedlibrary")

sharedlibrary update -- Process all pending DYLD events

show annotate -- Show annotation_level

show architecture -- Show architecture of target

show args -- Show argument list to give program being debugged when it is started

show auto-raise-load-levels -- Show if GDB should raise the symbol loading level on all frames found in backtraces

show auto-solib-add -- Show autoloading of shared library symbols

show backtrace -- Show backtrace specific variables

show breakpoint -- Breakpoint specific settings

show call-po-at-unsafe-times -- Show whether to override the check for potentially unsafe situations before calling print-object

show can-use-hw-watchpoints -- Show debugger's willingness to use watchpoint hardware

show case-sensitive -- Show case sensitivity in name search

show charset -- Show the host and target character sets

show check -- Show the status of the type/range checker

show checkpointing -- Show automatic creation of checkpoints

show coerce-float-to-double -- Show coercion of floats to doubles when calling functions

show commands -- Show the history of commands you typed

show complaints -- Show max number of complaints about incorrect symbols

show confirm -- Show whether to confirm potentially dangerous operations

show convenience -- Debugger convenience ("$foo") variables

show copying -- Conditions for redistributing copies of GDB

show cp-abi -- Show the ABI used for inspecting C++ objects

show darwin_kernel-debug-level -- Show level of verbosity for Darwin Kernel debugging information

show dcache-linesize-power -- Show the power for the cache line size

show debug -- Generic command for showing gdb debugging flags

show debug-file-directory -- Show the directory where separate debug symbols are searched for

show debugvarobj -- Show varobj debugging

show demangle-style -- Show the current C++ demangling style

show directories -- Current search path for finding source files

show disable-aslr -- Show if GDB should disable shared library address randomization

show disable-inferior-function-calls -- Show disabling of gdb from running calls in the debugee's context

show disassembly-flavor -- Show the disassembly flavor

show disassembly-name-length -- Show the maximum length of characters to print in the symbol name in disassembly output

show download-write-size -- Show the write size used when downloading a program

show editing -- Show editing of command lines as they are typed

show endian -- Show endianness of target

show environment -- The environment to give the program

show exception-catch-type-regexp -- Show exception regexp

show exception-throw-type-regexp -- Show throw regexp

show exec-argv0 -- X

show exec-done-display -- Show notification of completion for asynchronous execution commands

show exec-pathname -- Show the pathname to be used to start the target executable

show extension-language -- Show mapping between filename extension and source language

show follow-fork-mode -- Show debugger response to a program call of fork or vfork

show forking-checkpoints -- Show forking to create checkpoints

show function-end-absolute -- Show if N_FUN end-of-function symbols use absolute addresses on non-GCC files

show gnutarget -- Show the current BFD target

show height -- Show number of lines gdb thinks are in a page

show history -- Generic command for showing command history parameters

show host-charset -- Show the host character set

show inferior-auto-start-cfm -- Show if GDB should enable debugging of CFM shared libraries

show inferior-auto-start-dyld -- Show if GDB should enable debugging of dyld shared libraries

show inferior-bind-exception-port -- Show if GDB should bind the task exception port

show inferior-ptrace -- Show if GDB should attach to the subprocess using ptrace ()

show inferior-ptrace-on-attach -- Show if GDB should attach to the subprocess using ptrace ()

show inferior-tty -- Show terminal for future runs of program being debugged

show inform-optimized -- Show gdb informing you when you are debugging optimized code

show inlined-stepping -- Show the ability to maneuver through inlined function calls as if they were normal calls

show input-radix -- Show default input radix for entering numbers

show interpreter -- Show the interpreter for gdb

show kdp-debug-level -- Show level of verbosity for KDP debugging information

show kdp-default-host-type -- Show CPU type to be used for hosts providing incorrect information (powerpc/ia32)

show kdp-default-port -- Show default UDP port on which to attempt to contact KDP

show kdp-exception-sequence-number -- Show current sequence number for KDP exception transactions

show kdp-retries -- Show number of UDP retries for (non-exception) KDP transactions

show kdp-sequence-number -- Show current sequence number for KDP transactions

show kdp-timeout -- Show UDP timeout in milliseconds for (non-exception) KDP transactions

show kext-symbol-file-path -- Show the directory where kextutil-generated sym files are searched for

show language -- Show the current source language

show let-po-run-all-threads -- Show whether po should run all threads if it can't  safely run only the current thread

show listsize -- Show number of source lines gdb will list by default

show locate-dsym -- Show locate dSYM files using the DebugSymbols framework

show logging -- Show logging options

show lookup-objc-class -- Show whether we should attempt to lookup Obj-C classes when we resolve symbols

show mach-o-process-exports -- Show if GDB should process indirect function stub symbols from object files

show max-checkpoints -- Show the maximum number of checkpoints allowed (-1 == unlimited)

show max-user-call-depth -- Show the max call depth for user-defined commands

show mi-show-protections -- Show whether to show "public"

show mi-timings-enabled -- Show whether timing information is displayed for mi commands

show minimal-signal-handling -- Show whether we run with a minimal signal handling set

show mmap-string-tables -- Show if GDB should use mmap() to read STABS info

show mmap-symbol-files -- Show if GDB should use mmap() to read from external symbol files

show objc-class-method-limit -- Show the maximum number of class methods we scan before deciding we are looking at an uninitialized object

show objc-exceptions-interrupt-hand-call-fns -- Show whether hitting an ObjC exception throw interrupts a function called by hand from the debugger

show objc-non-blocking-mode -- Show whether all inferior function calls should use the objc non-blocking mode

show objc-version -- Show the current Objc runtime version

show opaque-type-resolution -- Show resolution of opaque struct/class/union types (if set before loading symbols)

show os -- Show operating system

show osabi -- Show OS ABI of target

show output-radix -- Show default output radix for printing of values

show overload-resolution -- Show overload resolution in evaluating C++ functions

show pagination -- Show state of pagination

show pathname-substitutions -- Show string substitutions to be used when searching for source files

show paths -- Current search path for finding object files

show print -- Generic command for showing print settings

show prompt -- Show gdb's prompt

show radix -- Show the default input and output number radices

show read-type-psyms -- Show if we should create partial symbols for types

show remote -- Remote protocol specific variables

show remoteaddresssize -- Show the maximum size of the address (in bits) in a memory packet

show remotebaud -- Show baud rate for remote serial I/O

show remotebreak -- Show whether to send break if interrupted

show remotecache -- Show cache use for remote targets

show remotedevice -- Show device for remote serial I/O

show remotelogbase -- Show numerical base for remote session logging

show remotelogfile -- Show filename for remote session recording

show remotetimeout -- Show timeout limit to wait for target to respond

show remotewritesize -- Show the maximum number of bytes per memory write packet (deprecated)

show restore -- Show current restore specific command settings

show scheduler-locking -- Show mode for locking scheduler during execution

show serial -- Show default serial/parallel port configuration

show sharedlibrary -- Generic command for showing shlib settings

show shlib-path-substitutions -- Show path substitutions to be used when loading shared libraries

show show_breakpoint_hit_counts -- Set if GDB should show breakpoint hit counts

show solib-absolute-prefix -- Show prefix for loading absolute shared library symbol files

show solib-search-path -- Show the search path for loading non-absolute shared library symbol files

show start-with-shell -- Show if GDB should use shell to invoke inferior (performs argument expansion in shell)

show step-mode -- Show mode of the step operation

show stop-on-solib-events -- Show stopping for shared library events

show struct-convention -- Show the convention for returning small structs

show subsystem-checkpointing -- Show checkpointing of subsystems

show symbol-reloading -- Show dynamic symbol table reloading multiple times in one run

show target-charset -- Show the target character set

show target-function-call-timeout -- Show the timeout for gdb issued function calls in the target program

show trust-readonly-sections -- Show mode for reading from readonly sections

show unwindonsignal -- Show unwinding of stack if a signal is received while in a call dummy

show use-array-stride -- Show if GDB should honor the 'stride' parameter of array types

show use-eh-frame-info -- Show if GDB should use the EH frame/DWARF CFI information to backtrace

show user -- Show definitions of user defined commands

show values -- Elements of value history around item number IDX (or last ten)

show varobj-print-object -- Abc

show varobj-runs-all-threads -- Set to run all threads when evaluating varobjs

show verbose -- Show verbosity

show version -- Show what version of GDB this is

show warranty -- Various kinds of warranty you do not have

show watchdog -- Show watchdog timer

show width -- Show number of characters gdb thinks are in a line

show write -- Show writing into executable and core files

backtrace -- Print backtrace of all stack frames

bt -- Print backtrace of all stack frames

down -- Select and print stack frame called by this one

frame -- Select and print a stack frame

return -- Make selected stack frame return to its caller

select-frame -- Select a stack frame without printing anything

up -- Select and print stack frame that called this one

info -- Generic command for showing things about the program being debugged

macro -- Prefix for commands dealing with C preprocessor macros

show -- Generic command for showing things about the debugger

apropos -- Search for commands matching a REGEXP

define -- Define a new command name

document -- Document a user-defined command

dont-repeat -- Don't repeat this command

down-silently -- Same as the `down' command

echo -- Print a constant string

help -- Print list of commands

if -- Execute nested commands once IF the conditional expression is non zero

interpreter-exec -- Execute a command in an interpreter

make -- Run the ``make'' program using the rest of the line as arguments

open -- Open the named source file in an application determined by LaunchServices

overlay -- Commands for debugging overlays

quit -- Exit gdb

shell -- Execute the rest of the line as a shell command

source -- Read commands from a file named FILE

up-silently -- Same as the `up' command

while -- Execute nested commands WHILE the conditional expression is non zero

target async -- Use a remote computer via a serial line

target child -- Unix child process (started by the "run" command)

target core-macho -- Use a core file as a target

target darwin-kernel -- Debug a running Darwin kernel; use 'attach' to begin

target exec -- Use an executable file as a target

target extended-async -- Use a remote computer via a serial line

target extended-remote -- Use a remote computer via a serial line

target macos-child -- Mac OS X child process (started by the "run" command)

target macos-exec -- Mac OS X executable

target remote -- Use a remote computer via a serial line

target remote-kdp -- Remotely debug a Mac OS X system using KDP

target remote-macosx -- Connect to a remote macosx device with shared library support using remote target

target remote-mobile -- Connect to a remote mobile device

tfind end -- Synonym for 'none'

tfind line -- Select a trace frame by source line

tfind none -- De-select any trace frame and resume 'live' debugging

tfind outside -- Select a trace frame whose PC is outside the given range

tfind pc -- Select a trace frame by PC

tfind range -- Select a trace frame whose PC is in the given range

tfind start -- Select the first trace frame in the trace buffer

tfind tracepoint -- Select a trace frame by tracepoint number

thread apply -- Apply a command to a list of threads

thread dont-suspend-while-stepping -- Usage: on|off <THREAD ID>|-port <EXPR>Toggle whether to not suspend this thread while single stepping the target on or off

thread resume -- Decrement the suspend count of a thread

thread suspend -- Increment the suspend count of a thread

actions -- Specify the actions to be taken at a tracepoint

collect -- Specify one or more data items to be collected at a tracepoint

end -- Ends a list of commands or actions

passcount -- Set the passcount for a tracepoint

save-tracepoints -- Save current tracepoint definitions as a script

tdump -- Print everything collected at the current tracepoint

tfind -- Select a trace frame;

trace -- Set a tracepoint at a specified line or function or address

tstart -- Start trace data collection

tstatus -- Display the status of the current trace data collection

tstop -- Stop trace data collection

while-stepping -- Specify single-stepping behavior at a tracepoint

unset environment -- Cancel environment variable VAR for the program

(gdb)

Creative Commons License
2011/05/15 08:28 2011/05/15 08:28