Я пытаюсь отлаживать статическую библиотеку, написанную на C с помощью программы Fortran, и две связаны с использованием взаимодействия Fortran C. Я использую Visual Studio 2013 в Windows.Точки останова нельзя увидеть при использовании совместимости С
Однако при вставке точки останова в C и создании нового .lib-файла и привязывании его к основной программе приложение Fortran не видит точку останова. Вот пример для простоты:
код C в статической библиотеке:
#include <stdio.h>
void f()
{
printf("Hello from C \n");
printf("Before breake point \n");
printf("At the breake point \n"); // breakpoint is inserted here
printf("After breake point \n");
}
Фортран код:
program test
use, intrinsic :: iso_c_binding
implicit none
interface
subroutine f() bind (C)
use, intrinsic :: iso_c_binding
end subroutine f
end interface
call f
pause
end program test
.lib файл был создан в режиме отладки и Fortran кода также выполняются в режиме отладки. Любая идея, что я делаю неправильно?
(Пожалуйста, обратите внимание, что в приведенном выше примере это только для иллюстрации, а не фактический код, я пытаюсь отлаживать)
Непонятно, какую toolchain вы используете, но поскольку вы упоминаете файлы '.lib', я полагаю, что это для Windows. Возможно, там все по-другому, но в мире, к которому я привык, точки останова не являются атрибутом скомпилированного кода, библиотеки или иным образом. Скорее, точки останова являются аспектом сеанса отладки - вы устанавливаете их в какой-то момент во время сеанса, и они не сохраняются до конца сеанса (хотя один сеанс может состоять из многих прогонов отлаживаемой программы). –
Да, это Windows. Я использую визуальную студию 2013 – Anas
Прошло много времени с тех пор, как я сделал какое-либо программирование на Windows, но в тот же день Visual Studio не была исключением из парадигмы, которую я описал в своем первом комментарии. Вы, кажется, предполагаете, что точки останова каким-то образом встроены в файл .lib', но это не так, как это работает в Unix, и как он когда-либо работал на Windows в моем теперь несколько отдаленном опыте. –