As EStruyf said, you can change the deployment configuration and debug the code for your Feature Event Receivers. But, you can also attach the event receivers after making sure List is created, so put this code after your list is created.
public class Feature1EventReceiver : SPFeatureReceiver
{
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
SPList lst = site.Lists["ListName"];
string asmName = Assembly.GetExecutingAssembly().FullName; //get the Full Assembly Name
string itemReceiverName = "Project1.EventReceivers"; // Event Receivers class (EventReceivers.cs) which contains definitions for events for e.g. ItemAdded...
lst.EventReceivers.Add(SPEventReceiverType.ItemAdded, asmName, itemReceiverName);
}
//delete the event receivers on Feature de-activation
public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
{
SPWeb oWeb = (SPWeb)properties.Feature.Parent;
SPList oList = oWeb.Lists[_listName];
for (int i = oList.EventReceivers.Count - 1; i >=0 ; i--)
{
if (oList.EventReceivers[i].Type.Equals(SPEventReceiverType.ItemAdded))
{
try
{
oList.EventReceivers[i].Delete();
}
catch (Exception e)
{
// Write to logs
}
}
}
}
}
Your EventReceivers.cs will look like
class EventReceivers : SPItemEventReceiver
{
public override void ItemAdded(SPItemEventProperties properties)
{
if (properties.Context != null)
{
try
{
//do something here
}
catch { return; }
}
}
}