강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

G General님의 프로필 이미지
G General

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

SendBuffer

GSessionManager 관련 질문드립니다!

작성

·

375

0

allocSize는 32 ( size(16) + sizeof(MemoryHeader)(16)) 입니다. 이게 GSessionManager가 _locks 하나와 _sessions 하나를 가지고 있어서 자체 사이즈가 16이고 메모리헤더 사이즈까지 16 해서 32는 맞는 것 같습니다.

콜스택을 보면 GSessionManager가  _poolTable[32]로 접근하려고 하는데, 사진처럼 _poolTable이 초기화가 안된건지 읽을 수가 없습니다ㅠ 이게 GameServer.cpp에서 GThreadManager->Join(); 때문에 GCoreGlobal 역시 컴파일 되서 GMemory도 실행되는걸로 알고 있었는데....

GThreadManager와 GMemory, GDeadLockProfiler 전부 다 잘 쓰고 있었는데, CoreGlobal에는 없이 GameServer에서 단독으로 선언되는 GSessionManager가 추가되니까 갑자기 어디서 꼬인건지 잘 모르겠습니다ㅜ

지금까지 강의 들으면서 Allocator 관련 문제가 단 한번도 발생하지 않아서 이게 allocator쪽 코드 문제 같아보이지는 않는데, 이게 척 보고 바로 알기가 힘들 것 같아서 그냥 코드를 복붙할까 하다가 그래도 원인이 전혀 감이 안 잡히니까 그냥 넘어가기도 좀 뭐해서 질문드립니다ㅠ

퀴즈

56%나 틀려요. 한번 도전해보세요!

네트워크 라이브러리 설계에서 `IocpCore` 클래스의 주된 역할은 무엇일까요?

세션 연결 상태를 관리합니다.

비동기 I/O 작업 완료를 효율적으로 알리고 스레드에 분배합니다.

패킷 데이터 인코딩/디코딩을 담당합니다.

기본 소켓 유틸리티 함수들을 제공합니다.

답변 2

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

ㅎㅎㅎ
저도 책 코드를 따라 칠 때
다르게 동작한다 싶으면
복붙 신공으로 범인을 추적하는데, 매우 훌륭한 방법입니다.

0

G General님의 프로필 이미지
G General
질문자

그냥 복붙하니까 잘 해결됐습니다ㅠ 어디서 뭘 잘못했겟죠ㅠㅠ

G General님의 프로필 이미지
G General

작성한 질문수

질문하기