2009-11-23 6 views
8

C++ :설정 문자열

int main() 
    { 
    string a = "a"; 
    ... ... 
    } 

내가 GDB로 디버깅 :

(GDB) 설정 var에 A = "확인"
유효하지

내가 도망 캐스트 문자열 A가 초기화 된 후 중단 점에서 프로그램 및 일시 중지 나는 그 가치를 설정하려하지만 잘못된 캐스트에 대해 불평합니다. 이것에 대한 적절한 구문은 무엇입니까?

+2

"설정"문자열은 gdb에서 반드시 지원하지 않는 복잡한 연산입니다. – bmargulies

+0

ok ... 그래서 gdb를 사용하여 int 변수를 설정할 수 있지만 문자열은 설정할 수 없습니까? 나는 문자열을 설정하는 것이 int를 설정하는 것보다 훨씬 복잡해 보이지 않기 때문에 혼란 스럽다. 그리고 나는 이것이 작동한다는 것을 안다 : int main() { int b = 9; } (gdb) set var b = 8 // 불평하지 않습니다. "설정"은 내가하려는 작업에 대한 올바른 용어입니다. 맞습니까? – anoda9

+2

"설정 문자열은 int를 설정하는 것보다 훨씬 복잡해 보이지 않습니다."- 음, 그렇습니다. –

답변

16

당신은이 작업을 수행 할 수 있습니다

call a.assign("ok") 

이 방법은, GDB가 바로이 함수를 호출 할 필요가 있음을 알고, 그것은 (std::string::assign)를 호출하는 기능을 알고 (오히려 당신이 operator=를 사용하여 시도 것보다) 정확히 일치하는 assign의 오버로드가 있기 때문에 형식을 전혀 변환 할 필요가 없습니다.

관련 문제