GDB로 디버깅은 D 프로그램 기호를 조회 할 수 없습니다
-
21-12-2019 - |
문제
Ian Buclaw의 (iBuclaw) GDB 지점을 성공적으로 구축하고 설치했습니다. 내 Ubuntu 13.10 x86_64의 github 기본 컴파일러 gcc 4.8.1.
ir ld
하위 디렉토리에서 bin
파일을 제거해야했습니다.
DMD는 링크 단계에서 sysroot to를 호소합니다.
내가 테스트 프로그램을 컴파일하고 GDB를 통해 그것을 실행할 때 문제.
i break main
, main
의 시작 부분에서 실행 및 GDB가 멈출 수 있지만 next
를 수행하면 다음과 같은 원하지 않는 출력을 얻을 수 있습니다
Single stepping until exit from function main,
which has no line number information.
0x00007ffff760ede5 in __libc_start_main () from
/lib/x86_64-linux-gnu/libc.so.6
.
여기에서 일하러가는 이비 큐 래브의 GDB가 아닌가?
내 테스트 프로그램이
로 컴파일되었습니다.dmd -debug -g -gs -wi t_array.d -oft_array
.
경고 또는 오류가없는 . 나는 또한 척하는 것 척
dmd -debug -g -gc -gs -wi t_array.d -oft_array
.
동일한 결과가 있습니다.
b
뒤에 탭이 뒤 따르는 경우 대부분의 기호
완료 목록은 Demangled가 아닙니다.
내 테스트 프로그램이
처럼 보입니다.import std.stdio, std.algorithm;
void main(string args[]) {
int[] x;
writeln(x.sizeof);
if (x) {
writeln("Here!");
} else {
writeln("There!");
}
int xx[2];
auto xc = xx;
xc[0] = 1;
writeln(xx);
writeln(xc);
int[2] xx_;
auto hit = x.find(1);
if (hit) {
writeln("Hit: ", hit);
} else {
writeln("No hit");
}
int[2] z; // arrays are zero initialized
writeln(z);
assert([].ptr == null);
assert("ab"[$..$] == []);
auto p = "ab"[$..$].ptr;
writeln(p);
assert(p != null);
}
. 해결책
는 Monodevelop 및 GDB 디버거 (DDB 디버거가 아닌 DBuger가 아닌 Break Main 대신 시작 명령을 사용해야합니다.당신의 자세한 내용 Dlangs 포럼 스레드 : "NoFollow"> http://forum.dlang.org/thread/avbpulzptddlekkczwse@forum.dlang.org.org.org.
제휴하지 않습니다 StackOverflow