Quando desejo debugar alguma WebPart, Event Receiver ou qualquer outro recurso que seja executado em um IIS Application Pool Process e implantado em um site SharePoint, faço os seguintes passos, sem eles geralmente o breakpoint fica inacessível
Assegure que a URL do Site SharePoint está informada corretamente, nas propriedades do Projeto, campo Site URL:
Assegure também, que a configuração de compilação do seu projeto está marcado como Debug e não Release.
Recarregue qualquer página do Site SharePoint a fim de que ele "aqueça" o servidor e cacheie tudo que for necessário. No meu exemplo, recarreguei a página que minha WebPart está.
Insira um breakpoint onde você deseja fazer o debug.
Abra o menu DEBUG na barra superior do Visual Studio e selecione Attach to Process.
Uma tela com diversos processos do Windows será apresentada. Marque a opção Show processes from all users.
Normalmente, o processo w3wp correto é o primeiro por ter sido o último acessado por algum usuário e você acabou de acessar uma página qualquer do seu servidor, porém, para confirmarmos esse dado utilize estes comandos abaixo diretamente no Prompt de Comando (cmd.exe) do seu servidor, rodando-o como Administrador.
cd C:\Windows\System32\inetsrv
Appcmd list wp
pause
Com este comando, conseguimos descobrir qual o w3wp correto. Assim, selecione o processo do Pool do IIS que contém o seu site SharePoint e clique em Attach. Aguarde até que o breakpoint fique uma bolinha vermelha cheia e acesse a página que contém sua WebPart, ou recarregue-a (caso já esteja nela). Com isto, o breakpoint deve ser "atingido" pelo Visual Studio e você pode debugar tranquilamente.
Qualquer dúvida ou problema neste pequeno tutorial, não hesite em comentar abaixo. Obrigado.