2017-10-22 4 views
0

LLDB에서는 사용자 지정 서식을 사용할 수 있습니다.클래스 템플릿 사용자 지정 요약 (C++)

class Foo { ... }; 

을 가진 예를 들어 나는

type summary add -T Foo 

을하고 다음 사용자 정의 개요와 파이썬 스크립트를 제공 할 수 있습니다. 그럼 난 LLDB에서 서식 사용자 정의 사용할 수 있습니다

Foo f; 

을 갖는

frame variable f 

을하지만 어떻게 일반적인 방법으로 할?

template<typename T> class Foo { ... }; 

내가

type summary add -P Foo<int> ... 
type summary add -P Foo<double> .... 

같은 구체적인 유형에 대한 요약을 정의 할 수 있지만 모든 종류의 그것을 할 수 있습니까? 나는

type summary add -P Foo<T> ... 

아니면 그것을 할 수있는 다른 방법이 뭔가를하고 싶습니다.

답변

0

DWARF 디버그 정보는 개별 구체적인 인스턴스화에 대한 정보 만 기록하므로 lldb (및 일반적으로 디버거)는 추상 템플릿을 잘 이해하지 못합니다.

현재 유형 요약 검색을위한 템플릿을 처리하는 방법은 type summary add에 -x 옵션을 사용하는 것입니다. 그러면 lldb는 형식 이름을 정규식으로 처리합니다. 템플릿 유형 이름과 일치하는 정규 표현식을 만드는 것은 그리 어렵지 않습니다. http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/lldbDataFormatters.py?view=markup

http://lldb.llvm.org/varformats.html

REGULAR EXPRESSION TYPENAMES 섹션에서 설명된다 : 여기 LLVM 데이터 유형에 대한 형식이 요약을 사용하는 예가있다